diff --git a/.github/workflows/unittest.yaml b/.github/workflows/unittest.yaml
new file mode 100644
index 0000000..42c7775
--- /dev/null
+++ b/.github/workflows/unittest.yaml
@@ -0,0 +1,38 @@
+name: Run Unittests
+
+on:
+ pull_request:
+ branches:
+ - main
+ push:
+ branches:
+ - main
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.10'
+
+ - name: Install Poetry
+ run: |
+ curl -sSL https://install.python-poetry.org | python3 -
+ export PATH="$HOME/.local/bin:$PATH"
+ poetry --version
+
+ - name: Install dependencies
+ run: |
+ export PATH="$HOME/.local/bin:$PATH"
+ poetry install
+
+ - name: Run tests with pytest
+ run: |
+ export PATH="$HOME/.local/bin:$PATH"
+ poetry run pytest tests
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 3911443..e084f3e 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -9,20 +9,20 @@ repos:
args: [--allow-multiple-documents]
exclude: "conda.recipe/meta.yaml"
- id: end-of-file-fixer
- exclude: "nucDataLibs/.*"
+ exclude: "tests/data/.*"
- id: trailing-whitespace
- exclude: "nucDataLibs/.*"
+ exclude: "tests/data/.*"
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.3
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- exclude: "nucDataLibs/.*"
+ exclude: "(tests/data/.*|legacy/.*)"
- id: ruff-format
- exclude: "nucDataLibs/.*"
+ exclude: "(tests/data/.*|legacy/.*)"
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
- exclude: "(nucDataLibs/.*|.*\\.ipynb)|poetry.lock"
+ exclude: "(tests/data/.*|.*\\.ipynb)|poetry.lock"
args: ["--ignore-words-list=DELTE"]
diff --git a/docs/development/architecture_v1.md b/docs/development/architecture_v1.md
new file mode 100644
index 0000000..c524c35
--- /dev/null
+++ b/docs/development/architecture_v1.md
@@ -0,0 +1,190 @@
+# PLEIADES Architecture Documentation
+
+This document is the design document for PLEIADES(v1), followed by suggestions on refactoring and enhancements.
+
+## Overview
+
+PLEIADES is a computational platform designed for neutron resonance analysis, with a focus on SAMMY integration and workflow management. The architecture follows a layered design with clear separation between configuration, execution, and analysis components.
+
+## System Architecture
+
+The system is divided into four main layers:
+
+1. **Core Layer**: Core configuration management and nuclear data access
+1. **Processing Layer**: Workflow orchestration and input generation
+1. **Execution Layer**: SAMMY execution and parameter management
+1. **Analysis Layer**: Results parsing and visualization
+
+```mermaid
+graph TD
+ User[User Script] --> |"Configure"| SammyUtils
+ User --> |"Visualize"| SammyPlotter
+
+ subgraph Core["Core Layer"]
+ SammyStructures["sammyStructures.py
Configuration Management"]
+ NucData["nucData.py
Nuclear Data Access"]
+ end
+
+ subgraph Processing["Processing Layer"]
+ SammyUtils["sammyUtils.py
Orchestration"] --> SammyStructures
+ SammyUtils --> NucData
+ SammyInput["sammyInput.py
Input Generation"] --> NucData
+ SammyParFile["sammyParFile.py
Parameter Management"] --> NucData
+ end
+
+ subgraph Execution["Execution Layer"]
+ SammyRunner["sammyRunner.py
SAMMY Integration"]
+ SammyUtils --> SammyRunner
+ SammyRunner --> SammyInput
+ SammyRunner --> SammyParFile
+ end
+
+ subgraph Analysis["Analysis Layer"]
+ SammyOutput["sammyOutput.py
Results Parser"]
+ SammyPlotter["sammyPlotter.py
Visualization"]
+ SammyOutput --> SammyPlotter
+ SammyRunner --> SammyOutput
+ end
+```
+
+## Module Details
+
+| Module | Key Components | Complexity | Summary |
+|--------|---------------|------------|----------|
+| sammyStructures.py | `SammyFitConfig`, `sammyRunConfig` | High | Core configuration management system handling parameter storage, validation, and directory structures |
+| nucData.py | `get_mass_from_ame()`, `extract_isotope_info()`, `get_info()` | Medium | Nuclear data access layer providing isotope information and atomic mass calculations |
+| sammyUtils.py | `create_parFile_from_endf()`, `configure_sammy_run()`, `run_sammy()` | High | High-level orchestrator managing workflow and coordinating between modules |
+| sammyRunner.py | `run_sammy_fit()`, `check_sammy_environment()` | Medium | SAMMY execution manager handling both local and Docker environments |
+| sammyInput.py | `InputFile` class | Medium | SAMMY input file generator with format-specific handlers |
+| sammyParFile.py | `ParFile`, `Update` classes | High | Parameter file manager supporting complex operations on SAMMY par files |
+| sammyOutput.py | `lptResults` class | Medium | Output parser extracting fit results from SAMMY output files |
+| sammyPlotter.py | `process_and_plot_lst_file()` | Low | Visualization tools for SAMMY results |
+| simData.py | `create_transmission()`, `Isotope` class | Low | Simulation support for transmission data |
+
+## Example Workflow
+
+The following example demonstrates a typical workflow using PLEIADES for SAMMY analysis:
+
+```python
+# 1. Configuration Setup
+from pleiades import sammyUtils, sammyPlotter
+config = sammyUtils.SammyFitConfig("uranium.ini")
+
+# 2. Generate Parameter Files
+sammyUtils.create_parFile_from_endf(config, verbose_level=1)
+
+# 3. Configure SAMMY Run
+sammy_run = sammyUtils.configure_sammy_run(config, verbose_level=1)
+
+# 4. Execute SAMMY Fit
+sammyUtils.run_sammy(config, verbose_level=1)
+
+# 5. Analyze Results
+sammyPlotter.process_and_plot_lst_file(
+ f"{config.params['directories']['sammy_fit_dir']}/results/SAMMY.LST",
+ residual=True,
+ quantity="transmission"
+)
+
+# Optional: Iterative Refinement
+# Update isotopes/parameters and rerun
+config.params["isotopes"]["names"].append("Ta-181")
+config.params["isotopes"]["abundances"].append(0.01)
+sammy_run = sammyUtils.configure_sammy_run(config, verbose_level=1)
+```
+
+Key Workflow Steps:
+
+1. Initialize configuration from `INI` file
+2. Generate parameter files from `ENDF` data
+3. Configure SAMMY run environment
+4. Execute SAMMY fit
+5. Analyze and visualize results
+6. [Optional] Iterate with parameter refinements
+
+The system supports both simple workflows and complex scenarios involving multiple isotopes and iterative refinement of fits.
+
+## Opportunities for Enhancement
+
+### Core Considerations
+
+1. **SAMMY Integration Requirements**
+ - The existing codebase effectively handles SAMMY's fixed-width format requirements
+ - This core functionality must be preserved during any refactoring
+ - Format definitions and card structures are essential and cannot be simplified
+
+1. **Class Organization**
+ - The `ParFile` and `InputFile` classes successfully manage complex SAMMY requirements
+ - Could benefit from internal reorganization while maintaining external interfaces
+ - Consider using composition for different card types while keeping format compliance
+
+ ```python
+ # Current approach works but could be reorganized internally
+ class ParFile:
+ def __init__(self):
+ self._SPIN_GROUP_FORMAT = {...} # Essential format definition
+ self._CHANNEL_RADII_FORMAT = {...}
+ ```
+
+### Implementation Opportunities
+
+1. **Type System Enhancement**
+ - Adding type hints could improve code maintainability
+ - Would help new developers understand data structures better
+
+ ```python
+ # Potential enhancement while maintaining functionality
+ def parse_spin_group(self, data: SpinGroupData) -> SpinGroupCard:
+ """Parse spin group data into SAMMY-compliant format"""
+ ```
+
+1. **File Handling Consistency**
+ - Consider standardizing on `pathlib` for path operations
+ - Maintain robust file handling while improving consistency
+
+ ```python
+ # Standardize on pathlib while keeping functionality
+ symlink_path = pathlib.Path(fit_dir) / "res_endf8.endf"
+ ```
+
+1. **Input Validation**
+ - Could consolidate validation while maintaining format requirements
+ - Early validation would help users identify issues sooner
+
+### Testing and Documentation
+
+1. **Test Coverage**
+ - Add unit tests to ensure format compliance
+ - Create test fixtures for common SAMMY input scenarios
+ - Validate output formats match SAMMY requirements
+
+1. **Documentation Enhancement**
+ - Expand docstrings for complex format handling
+ - Add examples of correct SAMMY input generation
+ - Document format requirements clearly
+
+### Performance Considerations
+
+1. **Resource Management**
+ - Review file handling patterns
+ - Consider streaming for large files where possible
+
+ ```python
+ # Potential enhancement for large files
+ def process_large_file(self, filename: Path) -> Iterator[str]:
+ with filename.open() as f:
+ for line in f:
+ yield self.process_line(line)
+ ```
+
+### Future Development Opportunities
+
+1. **Module Organization**
+ - Consider grouping related SAMMY format handlers
+ - Maintain format compliance while improving code organization
+
+1. **Error Handling**
+ - Enhance error messages for format-related issues
+ - Help users understand SAMMY's requirements better
+
+The original implementation effectively manages SAMMY's complex requirements. These suggestions aim to build upon that foundation while maintaining full compatibility with SAMMY's fixed-width format requirements.
diff --git a/docs/development/architecture_v2.md b/docs/development/architecture_v2.md
new file mode 100644
index 0000000..b04a85c
--- /dev/null
+++ b/docs/development/architecture_v2.md
@@ -0,0 +1,238 @@
+# PLEIADES Refactoring Design Document
+
+## Background
+
+PLEIADES is a library that help users prepare input files to use with SAMMY, a nuclear simulation software.
+The current implementation of PLEIADES is functional, but facing the following challenges:
+
+1. Tight Coupling: Core components are tightly coupled, making it difficult to modify one component without affecting others.
+1. Complex File Handling: Parameter file management spreads across multiple modules with duplicated logic.
+1. Error Handling: Inconsistent error handling patterns across modules.
+1. Type Safety: Lack of type hints makes code harder to maintain and more prone to runtime errors.
+1. Testing Complexity: Tightly coupled components make unit testing difficult
+
+## Refactoring Goals
+
+1. Modular Architecture
+
+ - Clear separation of concerns between components
+ - Decoupled interfaces between modules
+ - Composition-based design for parameter file handling
+
+1. Enhanced Backend Support
+
+ - Abstract SAMMY execution interface
+ - Support for local, Docker, and NOVA backends
+ - Extensible design for future backend additions
+
+1. Robust Data Management
+
+ - Centralized nuclear data access
+ - Type-safe data models (via Pydantic)
+ - Efficient caching mechanisms
+
+1. Improved Error Handling
+
+ - vConsistent error handling patterns
+ - Clear error hierarchies
+ - Descriptive error messages
+
+1. Type Safety and Validation
+
+ - Comprehensive type hints
+ - Runtime validation using Pydantic models
+ - Format validation for SAMMY inputs
+
+1. Testability
+
+ - Unit testable components
+ - Clear interfaces for mocking
+ - Comprehensive test coverage
+
+## System Architecture
+
+**Proposed** Architecture (left) vs. **Original** Architecture (right):
+
+```mermaid
+graph TD
+ %% Define the nodes and connections
+ subgraph "Original Architecture"
+ User1[User Script] --> |"Configure"| SammyUtils1
+ User1 --> |"Visualize"| SammyPlotter1
+
+ subgraph "Core"
+ SammyStructures1["sammyStructures.py
Configuration"]
+ NucData1["nucData.py
Nuclear Data"]
+ end
+
+ subgraph "Processing"
+ SammyUtils1["sammyUtils.py"] --> SammyStructures1
+ SammyUtils1 --> NucData1
+ SammyInput1["sammyInput.py"] --> NucData1
+ SammyParFile1["sammyParFile.py"] --> NucData1
+ end
+
+ subgraph "Execution"
+ SammyRunner1["sammyRunner.py"]
+ SammyUtils1 --> SammyRunner1
+ SammyRunner1 --> SammyInput1
+ SammyRunner1 --> SammyParFile1
+ end
+
+ subgraph "Analysis"
+ SammyOutput1["sammyOutput.py"]
+ SammyPlotter1["sammyPlotter.py"]
+ SammyRunner1 --> SammyOutput1
+ SammyOutput1 --> SammyPlotter1
+ end
+ end
+
+ subgraph "Refactored Architecture"
+ User2[User Script] --> |"Configure"| Core2
+ User2 --> |"Execute"| SammyManager2
+
+ subgraph "Core Layer"
+ Core2["Core Manager"] --> DataManager2
+ Core2 --> Models2
+ DataManager2["Nuclear Data Manager"]
+ Models2["Domain Models"]
+ end
+
+ subgraph "SAMMY Layer"
+ SammyManager2["SAMMY Manager"] --> Factory2
+ Factory2["Backend Factory"] --> Backends2
+ Backends2["Backend Interface"]
+ SammyManager2 --> ParFile2
+ ParFile2["Parameter File Manager"] --> Cards2
+ Cards2["Card Components"]
+ SammyManager2 --> InpFile2["Input File Manager"]
+ InpFile2 --> Cards2["Card Components"]
+ InpFile2 --> Commands2["Command Components"]
+ SammyManager2 --> DatFile2["Data File Manager"]
+ end
+
+ subgraph "Backend Implementations"
+ Backends2 --> Local2["Local Runner"]
+ Backends2 --> Docker2["Docker Runner"]
+ Backends2 --> Nova2["NOVA Runner"]
+ end
+
+ subgraph "Output Layer"
+ SammyManager2 --> OutputManager2
+ OutputManager2["Output Manager"]
+ OutputManager2 --> Analysis2["Analysis"]
+ OutputManager2 --> Plotting2["Plotting"]
+ end
+ end
+
+ %% Add styling for "Original Architecture"
+ classDef originalStyle fill:#F3E5AB,stroke:#6B4226,stroke-width:2px;
+ class User1,SammyUtils1,SammyPlotter1,SammyStructures1,NucData1,SammyInput1,SammyParFile1,SammyRunner1,SammyOutput1 originalStyle;
+
+ %% Add styling for "Refactored Architecture"
+ classDef refactoredStyle fill:#D5F3FE,stroke:#1E88E5,stroke-width:2px;
+ class User2,Core2,SammyManager2,DataManager2,Models2,Factory2,Backends2,ParFile2,InpFile2,DatFile2,Cards2,Commands2,Local2,Docker2,Nova2,OutputManager2,Analysis2,Plotting2 refactoredStyle;
+```
+
+Key architectural decisions:
+
+1. Core Layer Consolidation
+
+ - Centralized data management through DataManager replaces scattered nuclear data access
+ - Type-safe domain models using `Pydantic` for consistency and validation
+ - Clear separation between data access and business logic
+ - Improved caching and error handling for nuclear data operations
+
+1. SAMMY Layer Modularization
+
+ - Complete separation of three key file types:
+ - Parameter file (.par) - resonance parameters and physical constants
+ - Input file (.inp) - execution control and commands
+ - Data file (.dat) - experimental data
+ - Each file type managed by dedicated components:
+ - Parameter File Manager with modular card components
+ - Input File Manager with commands and card components
+ - Data File Manager for transmission/cross-section data
+ - Backend abstraction using Factory pattern for flexible execution
+
+1. File Generation Components
+
+ - Card Components: Reusable building blocks for both parameter and input files
+ - Strong typing for each card type
+ - Validation rules enforced through models
+ - Fixed-width format handling utilities
+ - Command Components: Specialized for input file generation
+ - Consistent command formatting
+ - Validation of command combinations
+ - Default configurations
+
+1. Backend System Enhancement
+
+ - Abstract Backend Interface allowing multiple implementations
+ - Three supported execution methods:
+ - Local SAMMY installation
+ - Docker containerization
+ - NOVA web service integration
+ - Runtime backend selection and validation
+ - Environment-aware configuration
+ - Consistent error handling across backends
+
+1. Output Processing Improvements
+
+ - Complete decoupling of execution and analysis
+ - Unified output collection interface
+ - Flexible analysis pipeline
+ - Modular visualization components
+ - Format conversion utilities
+
+1. Cross-Cutting Improvements
+
+ - Comprehensive error hierarchies
+ - Consistent logging patterns
+ - Configuration validation
+ - Type safety throughout
+ - Unit test support
+
+## Refactoring Guidelines
+
+Core Development Principles
+
+1. Type Safety
+ - Implement comprehensive type hints for all functions and classes
+ - Enforce type checking during development and CI
+
+1. Data Models
+ - Use `Pydantic` (v2) for data container classes and validation
+ - Define clear data structures for nuclear physics quantities
+ - Validate data at system boundaries
+
+1. Error Handling
+ - Define module-specific exception hierarchies
+ - Provide physics-relevant error messages
+ - Handle errors at appropriate abstraction levels
+
+1. Module Design
+ - Each module serves single, well-defined purpose
+ - Clear interfaces between components
+ - Minimize inter-module dependencies
+ - Prefer composition over inheritance
+ - Provide example usage in module docstrings or the `__main__` block.
+
+1. Testing
+ - Unit tests required for all new modules
+ - Test physics edge cases and error conditions
+ - Mock external dependencies (SAMMY, filesystem)
+ - Maintain test coverage targets
+
+### Implementation Process
+
+1. Review original module functionality
+1. Design new module interface and data structures
+1. Implement core features with type safety and validation
+1. Add comprehensive unit tests
+1. Migrate dependent code gradually
+1. Document new interfaces and behaviors
+
+### Reference Implementations
+
+When in doubt, refer to the completed modules for guidance.
diff --git a/examples/configFiles/nat_europium.ini b/examples/configFiles/nat_europium.ini
deleted file mode 100644
index 494089c..0000000
--- a/examples/configFiles/nat_europium.ini
+++ /dev/null
@@ -1,81 +0,0 @@
-[main]
-run_with_endf = false
-fit_energy_min = 0.1
-fit_energy_max = 29.0
-flight_path_length = 14.96
-fudge_factor = 1.0
-
-[directories]
-working_dir = ""
-user_defined = false
-image_dir = "images"
-data_dir = "../data"
-archive_dir = ".archive"
-sammy_fit_dir = "natEu"
-endf_dir = "endf"
-fir_results = "fit_results"
-
-[filenames]
-data_file_name = 'natEu.twenty'
-input_file_name = 'input.inp'
-params_file_name = 'params.par'
-
-[isotopes]
-names = Eu-151,Eu-153
-abundances = 0.7,0.99
-vary_abundances = true,true
-
-[broadening]
-thickness = 9.5e-4
-vary_thickness = true
-temperature = 2966
-vary_temperature = false
-flight_path_spread = 0.001
-vary_flight_path_spread = false
-deltag_fwhm = 0.001
-vary_deltag_fwhm = false
-deltae_us = 0.001006
-vary_deltae_us = false
-
-[normalization]
-normalization = 1.0
-vary_normalization = false
-constant_bg = 0.0001
-vary_constant_bg = false
-one_over_v_bg = 0.0001
-vary_one_over_v_bg = false
-sqrt_energy_bg = 0.0001
-vary_sqrt_energy_bg = false
-exponential_bg = 0.0
-vary_exponential_bg = false
-exp_decay_bg = 0.0
-vary_exp_decay_bg = false
-
-[tzero]
-t0 = 1.1875
-vary_t0 = false
-L0 = 0.988967
-vary_L0 = false
-
-[delta_L]
-delta_L1 = -0.004762
-delta_L1_err =
-vary_delta_L1 = false
-delta_L0 = 0.092731
-delta_L0_err =
-vary_delta_L0 = false
-
-[delta_E]
-DE = 0.20044
-DE_err =
-vary_DE = false
-D0 = 13.618
-D0_err =
-vary_D0 = false
-DlnE = -5.0151
-DlnE_err =
-vary_DlnE = false
-
-[resonances]
-resonance_energy_min = 0.1
-resonance_energy_max = 100.0
diff --git a/examples/configFiles/simTransmissionConfig.ini b/examples/configFiles/simTransmissionConfig.ini
deleted file mode 100644
index 17085ff..0000000
--- a/examples/configFiles/simTransmissionConfig.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-[Isotope1]
-name = U-238
-thickness = 0.01
-thickness_unit = cm
-abundance = 1
-xs_file_location = /PATH/TO/PLEIADES/nucDataLibs/xSections/u-n.tot
-density = 19.1
-density_unit = g/cm3
-ignore = false
-
-[Isotope2]
-name = U-235
-thickness = 0.02
-thickness_unit = cm
-abundance = 1
-xs_file_location = /PATH/TO/PLEIADES/nucDataLibs/xSections/u-n.tot
-density = 19.1
-density_unit = g/cm3
-ignore = false
-
-[Isotope3]
-name = Ta-181
-thickness = 0.02
-thickness_unit = cm
-abundance = 1
-xs_file_location = /PATH/TO/PLEIADES/nucDataLibs/xSections/ta-n.tot
-density = 16.65
-density_unit = g/cm3
-ignore = false
diff --git a/examples/configFiles/uranium.ini b/examples/configFiles/uranium.ini
deleted file mode 100644
index 12ad4c8..0000000
--- a/examples/configFiles/uranium.ini
+++ /dev/null
@@ -1,85 +0,0 @@
-[main]
-sammy_run_method = "docker"
-sammy_command = "sammy-docker"
-sammy_fit_name = "uranium-fit"
-run_endf_for_par = true
-use_endf_par_file = true
-fit_energy_min = 1
-fit_energy_max = 100.0
-flight_path_length = 14.96
-fudge_factor = 1.0
-
-[directories]
-working_dir = "./analysis"
-user_defined = false
-image_dir = "images"
-data_dir = "../data"
-archive_dir = ".archive"
-sammy_fit_dir = "u235-u238"
-endf_dir = "endf"
-fit_results_dir = "results"
-
-[filenames]
-data_file_name = 'u235-u238.twenty'
-input_file_name = 'input.inp'
-params_file_name = 'params.par'
-
-[isotopes]
-names = U-235,U-238
-abundances = 0.01,0.01
-vary_abundances = true,true
-
-[broadening]
-thickness = 1.0
-vary_thickness = true
-temperature = 2966
-vary_temperature = false
-flight_path_spread = 0.0
-vary_flight_path_spread = false
-deltag_fwhm = 0.0
-vary_deltag_fwhm = false
-deltae_us = 0.00
-vary_deltae_us = false
-
-[normalization]
-normalization = 1.0
-vary_normalization = false
-constant_bg = 0.00
-vary_constant_bg = false
-one_over_v_bg = 0.00
-vary_one_over_v_bg = false
-sqrt_energy_bg = 0.00
-vary_sqrt_energy_bg = false
-exponential_bg = 0.0
-vary_exponential_bg = false
-exp_decay_bg = 0.0
-vary_exp_decay_bg = false
-
-[tzero]
-t0 = 1.1875
-vary_t0 = false
-L0 = 0.988967
-vary_L0 = false
-
-[delta_L]
-delta_L1 = -0.004762
-delta_L1_err =
-vary_delta_L1 = false
-delta_L0 = 0.092731
-delta_L0_err =
-vary_delta_L0 = false
-
-[delta_E]
-DE = 0.20044
-DE_err =
-vary_DE = false
-D0 = 13.618
-D0_err =
-vary_D0 = false
-DlnE = -5.0151
-DlnE_err =
-vary_DlnE = false
-
-[resonances]
-resonance_energy_min = 0.1
-resonance_energy_max = 100.0
diff --git a/examples/data/natEu.twenty b/examples/data/natEu.twenty
deleted file mode 100644
index 7e9c3eb..0000000
--- a/examples/data/natEu.twenty
+++ /dev/null
@@ -1,2618 +0,0 @@
- 0.0100384000 0.0124021000 0.0016089100
- 0.0100873000 0.0092289900 0.0014453700
- 0.0101366000 0.0113757000 0.0015378700
- 0.0101862000 0.0115490000 0.0015481200
- 0.0102362000 0.0109497000 0.0014860100
- 0.0102865000 0.0125182000 0.0015527200
- 0.0103372000 0.0097647800 0.0013978800
- 0.0103883000 0.0125837000 0.0015446700
- 0.0104398000 0.0097960800 0.0013770400
- 0.0104917000 0.0139567000 0.0015736700
- 0.0105439000 0.0130358000 0.0015259500
- 0.0105965000 0.0135223000 0.0015353000
- 0.0106496000 0.0127577000 0.0014827500
- 0.0107030000 0.0122016000 0.0014465400
- 0.0107568000 0.0113277000 0.0013834400
- 0.0108111000 0.0138744000 0.0014957900
- 0.0108657000 0.0132085000 0.0014554300
- 0.0109208000 0.0127671000 0.0014178800
- 0.0109763000 0.0166236000 0.0015632300
- 0.0110322000 0.0139894000 0.0014505800
- 0.0110885000 0.0171604000 0.0015682400
- 0.0111453000 0.0148479000 0.0014619500
- 0.0112025000 0.0168808000 0.0015167000
- 0.0112602000 0.0136958000 0.0013706100
- 0.0113182000 0.0141931000 0.0013816100
- 0.0113768000 0.0154519000 0.0014193700
- 0.0114358000 0.0154123000 0.0014158700
- 0.0114953000 0.0145636000 0.0013592900
- 0.0115552000 0.0178614000 0.0014664300
- 0.0116156000 0.0162545000 0.0013970500
- 0.0116765000 0.0148516000 0.0013391900
- 0.0117378000 0.0167599000 0.0013959700
- 0.0117996000 0.0159145000 0.0013439900
- 0.0118620000 0.0187224000 0.0014265800
- 0.0119248000 0.0172020000 0.0013740500
- 0.0119881000 0.0151172000 0.0012827000
- 0.0120519000 0.0185136000 0.0013912500
- 0.0121163000 0.0157758000 0.0012839200
- 0.0121811000 0.0179785000 0.0013457700
- 0.0122465000 0.0170340000 0.0013143100
- 0.0123124000 0.0192876000 0.0013773500
- 0.0123789000 0.0198782000 0.0013768500
- 0.0124458000 0.0220229000 0.0014289000
- 0.0125134000 0.0202494000 0.0013664000
- 0.0125814000 0.0209589000 0.0013663100
- 0.0126501000 0.0195005000 0.0013086800
- 0.0127193000 0.0190792000 0.0012937000
- 0.0127890000 0.0219310000 0.0013628200
- 0.0128594000 0.0219470000 0.0013530500
- 0.0129303000 0.0218978000 0.0013463000
- 0.0130018000 0.0220466000 0.0013405700
- 0.0130739000 0.0218112000 0.0013326300
- 0.0131466000 0.0222460000 0.0013351900
- 0.0132199000 0.0242942000 0.0013929200
- 0.0132938000 0.0219568000 0.0013196800
- 0.0133684000 0.0239729000 0.0013767500
- 0.0134436000 0.0222409000 0.0013272100
- 0.0135194000 0.0244859000 0.0013711000
- 0.0135959000 0.0248919000 0.0013623600
- 0.0136730000 0.0239240000 0.0013354100
- 0.0137507000 0.0238629000 0.0013199000
- 0.0138292000 0.0249351000 0.0013379600
- 0.0139083000 0.0263717000 0.0013678000
- 0.0139881000 0.0242520000 0.0012964500
- 0.0140685000 0.0254453000 0.0013150500
- 0.0141497000 0.0282891000 0.0013670400
- 0.0142316000 0.0277050000 0.0013432800
- 0.0143142000 0.0278071000 0.0013325800
- 0.0143975000 0.0263827000 0.0012896200
- 0.0144815000 0.0273024000 0.0012956000
- 0.0145663000 0.0288303000 0.0013197900
- 0.0146518000 0.0319202000 0.0013703500
- 0.0147381000 0.0313794000 0.0013484900
- 0.0148251000 0.0296052000 0.0013011500
- 0.0149129000 0.0314528000 0.0013315500
- 0.0150015000 0.0305383000 0.0013052400
- 0.0150909000 0.0302659000 0.0012809800
- 0.0151811000 0.0303648000 0.0012799100
- 0.0152721000 0.0340318000 0.0013388900
- 0.0153640000 0.0348114000 0.0013374900
- 0.0154566000 0.0338295000 0.0013153900
- 0.0155501000 0.0339914000 0.0013149800
- 0.0156445000 0.0366573000 0.0013577600
- 0.0157397000 0.0352321000 0.0013330200
- 0.0158357000 0.0368079000 0.0013636400
- 0.0159327000 0.0355200000 0.0013331900
- 0.0160306000 0.0362707000 0.0013416100
- 0.0161293000 0.0385078000 0.0013752500
- 0.0162290000 0.0381181000 0.0013554900
- 0.0163296000 0.0383197000 0.0013537000
- 0.0164311000 0.0396994000 0.0013731900
- 0.0165336000 0.0396499000 0.0013699800
- 0.0166371000 0.0402936000 0.0013706600
- 0.0167415000 0.0394958000 0.0013603200
- 0.0168469000 0.0439216000 0.0014304300
- 0.0169533000 0.0436170000 0.0014109700
- 0.0170607000 0.0408858000 0.0013608200
- 0.0171692000 0.0439584000 0.0013926200
- 0.0172787000 0.0427609000 0.0013667300
- 0.0173892000 0.0452531000 0.0013953400
- 0.0175008000 0.0466604000 0.0014021300
- 0.0176135000 0.0478718000 0.0014117600
- 0.0177272000 0.0457936000 0.0013614300
- 0.0178421000 0.0468711000 0.0013734500
- 0.0179581000 0.0509017000 0.0014155500
- 0.0180752000 0.0492731000 0.0013791200
- 0.0181935000 0.0508107000 0.0013883900
- 0.0183130000 0.0510551000 0.0013833800
- 0.0184336000 0.0533277000 0.0014020700
- 0.0185554000 0.0552303000 0.0014152500
- 0.0186784000 0.0530259000 0.0013691600
- 0.0188027000 0.0532816000 0.0013679900
- 0.0189282000 0.0552882000 0.0013790100
- 0.0190549000 0.0551244000 0.0013657900
- 0.0191830000 0.0577732000 0.0013954800
- 0.0193123000 0.0589052000 0.0014001200
- 0.0194430000 0.0576857000 0.0013784600
- 0.0195749000 0.0603987000 0.0014019800
- 0.0197083000 0.0603167000 0.0013956800
- 0.0198429000 0.0614760000 0.0014078400
- 0.0199790000 0.0606118000 0.0013871200
- 0.0201165000 0.0616982000 0.0013916600
- 0.0202554000 0.0634680000 0.0014004700
- 0.0203958000 0.0655938000 0.0014176100
- 0.0205376000 0.0653689000 0.0014006600
- 0.0206809000 0.0676610000 0.0014160000
- 0.0208257000 0.0709890000 0.0014345000
- 0.0209720000 0.0715626000 0.0014349900
- 0.0211199000 0.0701039000 0.0014043500
- 0.0212693000 0.0716361000 0.0014078400
- 0.0214203000 0.0737385000 0.0014236600
- 0.0215730000 0.0740215000 0.0014146800
- 0.0217273000 0.0759374000 0.0014237600
- 0.0218832000 0.0753786000 0.0014111000
- 0.0220409000 0.0767815000 0.0014160400
- 0.0222002000 0.0795275000 0.0014381000
- 0.0223613000 0.0797233000 0.0014301000
- 0.0225241000 0.0833809000 0.0014693900
- 0.0226888000 0.0839766000 0.0014669000
- 0.0228552000 0.0869420000 0.0014764200
- 0.0230235000 0.0856462000 0.0014536700
- 0.0231936000 0.0873872000 0.0014537000
- 0.0233656000 0.0884483000 0.0014480900
- 0.0235396000 0.0912395000 0.0014620000
- 0.0237155000 0.0909722000 0.0014467300
- 0.0238934000 0.0928542000 0.0014522000
- 0.0240733000 0.0949510000 0.0014497200
- 0.0242552000 0.0947081000 0.0014358400
- 0.0244392000 0.0988032000 0.0014563700
- 0.0246253000 0.1011410000 0.0014607700
- 0.0248135000 0.1014000000 0.0014498300
- 0.0250039000 0.1044650000 0.0014589800
- 0.0251965000 0.1040410000 0.0014455400
- 0.0253914000 0.1054050000 0.0014400900
- 0.0255885000 0.1084160000 0.0014518800
- 0.0257879000 0.1125390000 0.0014664600
- 0.0259896000 0.1113470000 0.0014422500
- 0.0261937000 0.1158440000 0.0014624600
- 0.0264003000 0.1147090000 0.0014422800
- 0.0266093000 0.1202780000 0.0014676100
- 0.0268208000 0.1198870000 0.0014490200
- 0.0270348000 0.1222440000 0.0014589800
- 0.0272513000 0.1272640000 0.0014773500
- 0.0274705000 0.1278290000 0.0014698900
- 0.0276924000 0.1252350000 0.0014374300
- 0.0279170000 0.1313740000 0.0014693800
- 0.0281443000 0.1325560000 0.0014613800
- 0.0283743000 0.1338220000 0.0014670500
- 0.0286072000 0.1364280000 0.0014703300
- 0.0288430000 0.1412250000 0.0014916800
- 0.0290818000 0.1418490000 0.0014898400
- 0.0293235000 0.1430870000 0.0014928700
- 0.0295682000 0.1469370000 0.0015081500
- 0.0298160000 0.1483350000 0.0015113700
- 0.0300669000 0.1515680000 0.0015219800
- 0.0303210000 0.1529460000 0.0015143700
- 0.0305784000 0.1556130000 0.0015195200
- 0.0308390000 0.1599000000 0.0015301200
- 0.0311030000 0.1629350000 0.0015307100
- 0.0313704000 0.1658180000 0.0015318000
- 0.0316412000 0.1680290000 0.0015338400
- 0.0319156000 0.1714360000 0.0015392400
- 0.0321936000 0.1731620000 0.0015361900
- 0.0324752000 0.1756600000 0.0015369500
- 0.0327605000 0.1795850000 0.0015446100
- 0.0330496000 0.1793930000 0.0015364400
- 0.0333425000 0.1857400000 0.0015579400
- 0.0336393000 0.1874980000 0.0015553100
- 0.0339402000 0.1904730000 0.0015596200
- 0.0342451000 0.1942500000 0.0015631000
- 0.0345541000 0.1983860000 0.0015696200
- 0.0348673000 0.1979160000 0.0015560700
- 0.0351848000 0.2052400000 0.0015771300
- 0.0355066000 0.2071710000 0.0015729300
- 0.0358329000 0.2099060000 0.0015782700
- 0.0361637000 0.2143980000 0.0015855500
- 0.0364991000 0.2132690000 0.0015704000
- 0.0368392000 0.2199310000 0.0015856400
- 0.0371840000 0.2239800000 0.0015900900
- 0.0375338000 0.2273330000 0.0015924400
- 0.0378884000 0.2302250000 0.0015930900
- 0.0382482000 0.2340620000 0.0015951200
- 0.0386131000 0.2390970000 0.0016002100
- 0.0389832000 0.2432050000 0.0016072900
- 0.0393587000 0.2478750000 0.0016126500
- 0.0397396000 0.2502360000 0.0016082900
- 0.0401261000 0.2543380000 0.0016197800
- 0.0405182000 0.2549780000 0.0016073400
- 0.0409162000 0.2608100000 0.0016199300
- 0.0413200000 0.2685350000 0.0016382300
- 0.0417298000 0.2707110000 0.0016356500
- 0.0421458000 0.2723970000 0.0016312400
- 0.0425680000 0.2784870000 0.0016460300
- 0.0429966000 0.2852740000 0.0016591500
- 0.0434317000 0.2853810000 0.0016452800
- 0.0438734000 0.2906300000 0.0016582500
- 0.0443219000 0.2983750000 0.0016732700
- 0.0447773000 0.3015340000 0.0016742800
- 0.0452398000 0.3049850000 0.0016742300
- 0.0457094000 0.3085840000 0.0016790500
- 0.0461865000 0.3151590000 0.0016896400
- 0.0466710000 0.3172860000 0.0016863200
- 0.0471632000 0.3232820000 0.0016954700
- 0.0476632000 0.3274150000 0.0016991900
- 0.0481712000 0.3318540000 0.0017043800
- 0.0486874000 0.3351750000 0.0017028100
- 0.0492119000 0.3419900000 0.0017160500
- 0.0497450000 0.3464820000 0.0017183600
- 0.0500486000 0.3476860000 0.0048508300
- 0.0501165000 0.3490380000 0.0048676200
- 0.0501845000 0.3515330000 0.0048875600
- 0.0502526000 0.3481230000 0.0048437700
- 0.0503209000 0.3510530000 0.0048738800
- 0.0503893000 0.3512010000 0.0048817300
- 0.0504578000 0.3504330000 0.0048454900
- 0.0505265000 0.3591170000 0.0049162900
- 0.0505954000 0.3531820000 0.0048591100
- 0.0506643000 0.3493550000 0.0048443900
- 0.0507334000 0.3570270000 0.0049185700
- 0.0508027000 0.3466910000 0.0048101600
- 0.0508721000 0.3533390000 0.0048352300
- 0.0509416000 0.3593090000 0.0048992100
- 0.0510113000 0.3626340000 0.0049208300
- 0.0510811000 0.3493880000 0.0048173400
- 0.0511511000 0.3611790000 0.0048969100
- 0.0512212000 0.3649870000 0.0049461000
- 0.0512915000 0.3542730000 0.0048320900
- 0.0513619000 0.3605810000 0.0048964300
- 0.0514324000 0.3588260000 0.0048676800
- 0.0515031000 0.3656880000 0.0049287900
- 0.0515739000 0.3586370000 0.0048513200
- 0.0516449000 0.3628740000 0.0049234100
- 0.0517161000 0.3540400000 0.0048196800
- 0.0517873000 0.3668370000 0.0049129600
- 0.0518588000 0.3615830000 0.0048754600
- 0.0519303000 0.3594590000 0.0048349400
- 0.0520021000 0.3686370000 0.0049440400
- 0.0520739000 0.3667570000 0.0049198900
- 0.0521459000 0.3626340000 0.0048710700
- 0.0522181000 0.3607090000 0.0048379300
- 0.0522904000 0.3663200000 0.0048960100
- 0.0523629000 0.3667440000 0.0049009300
- 0.0524355000 0.3725800000 0.0049680400
- 0.0525083000 0.3760240000 0.0049801900
- 0.0525812000 0.3772810000 0.0049773700
- 0.0526543000 0.3663410000 0.0048707500
- 0.0527275000 0.3660420000 0.0048858700
- 0.0528009000 0.3783780000 0.0049883400
- 0.0528744000 0.3742680000 0.0049369000
- 0.0529481000 0.3730230000 0.0049383000
- 0.0530219000 0.3863150000 0.0050520500
- 0.0530959000 0.3754090000 0.0049590000
- 0.0531701000 0.3689720000 0.0048866400
- 0.0532444000 0.3759360000 0.0049405000
- 0.0533189000 0.3706780000 0.0048855700
- 0.0533935000 0.3718690000 0.0048923600
- 0.0534683000 0.3849540000 0.0050026500
- 0.0535432000 0.3798720000 0.0049638800
- 0.0536183000 0.3741090000 0.0049178200
- 0.0536935000 0.3815600000 0.0049604900
- 0.0537689000 0.3806880000 0.0049671900
- 0.0538445000 0.3844920000 0.0049731000
- 0.0539202000 0.3796600000 0.0049539500
- 0.0539961000 0.3832530000 0.0049505200
- 0.0540721000 0.3788250000 0.0049037800
- 0.0541483000 0.3826650000 0.0049449500
- 0.0542247000 0.3922200000 0.0050221400
- 0.0543012000 0.3923340000 0.0050414400
- 0.0543779000 0.3759530000 0.0048840000
- 0.0544548000 0.3829550000 0.0049329600
- 0.0545318000 0.3952150000 0.0050443500
- 0.0546090000 0.3910850000 0.0049995200
- 0.0546863000 0.3909650000 0.0050117100
- 0.0547638000 0.3879260000 0.0049747100
- 0.0548415000 0.3939460000 0.0050169600
- 0.0549193000 0.3979420000 0.0050453000
- 0.0549973000 0.3911790000 0.0049908600
- 0.0550755000 0.3987150000 0.0050475900
- 0.0551539000 0.3923450000 0.0049865300
- 0.0552324000 0.3871740000 0.0049362200
- 0.0553110000 0.3946060000 0.0050073800
- 0.0553899000 0.3954480000 0.0049867900
- 0.0554689000 0.3901780000 0.0049692400
- 0.0555480000 0.3912630000 0.0049618100
- 0.0556274000 0.3993900000 0.0050138200
- 0.0557069000 0.4016050000 0.0050527900
- 0.0557866000 0.3870060000 0.0049435800
- 0.0558665000 0.3948150000 0.0050044000
- 0.0559465000 0.4011170000 0.0050243700
- 0.0560267000 0.4059050000 0.0050875400
- 0.0561071000 0.3943290000 0.0049641800
- 0.0561876000 0.3906470000 0.0049436800
- 0.0562683000 0.3990930000 0.0049746200
- 0.0563492000 0.3972140000 0.0049833400
- 0.0564303000 0.4041670000 0.0050369100
- 0.0565116000 0.3941920000 0.0049533500
- 0.0565930000 0.3942480000 0.0049587600
- 0.0566746000 0.4030220000 0.0050217200
- 0.0567563000 0.4059310000 0.0050405400
- 0.0568383000 0.4090970000 0.0050458100
- 0.0569204000 0.4135410000 0.0050856700
- 0.0570027000 0.4053610000 0.0049995700
- 0.0570852000 0.4101250000 0.0050626100
- 0.0571679000 0.4098720000 0.0050430100
- 0.0572507000 0.4006280000 0.0049579700
- 0.0573338000 0.4098970000 0.0050567000
- 0.0574170000 0.4102320000 0.0050762300
- 0.0575003000 0.4125190000 0.0050507900
- 0.0575839000 0.4082140000 0.0050280100
- 0.0576677000 0.4114900000 0.0050325000
- 0.0577516000 0.4140860000 0.0050444900
- 0.0578357000 0.4169320000 0.0050901400
- 0.0579200000 0.4142120000 0.0050540800
- 0.0580045000 0.4162310000 0.0050749800
- 0.0580892000 0.4131000000 0.0050364800
- 0.0581740000 0.4179480000 0.0050822800
- 0.0582591000 0.4055010000 0.0049880200
- 0.0583443000 0.4178720000 0.0050571500
- 0.0584297000 0.4172520000 0.0050654300
- 0.0585153000 0.4172970000 0.0050583500
- 0.0586011000 0.4072810000 0.0049573100
- 0.0586871000 0.4124860000 0.0050173100
- 0.0587733000 0.4195220000 0.0050780600
- 0.0588596000 0.4225260000 0.0050778900
- 0.0589462000 0.4206000000 0.0050923000
- 0.0590329000 0.4191090000 0.0050596400
- 0.0591199000 0.4221140000 0.0050665000
- 0.0592070000 0.4272120000 0.0051084400
- 0.0592943000 0.4236640000 0.0050719300
- 0.0593818000 0.4208340000 0.0050445200
- 0.0594695000 0.4274560000 0.0051244900
- 0.0595574000 0.4293400000 0.0051289500
- 0.0596455000 0.4151280000 0.0050017900
- 0.0597338000 0.4248800000 0.0050798600
- 0.0598223000 0.4284310000 0.0050947700
- 0.0599110000 0.4285850000 0.0050774200
- 0.0599998000 0.4123130000 0.0049584200
- 0.0600889000 0.4280960000 0.0050716000
- 0.0601782000 0.4329150000 0.0051427700
- 0.0602677000 0.4278760000 0.0050691700
- 0.0603574000 0.4308810000 0.0050991100
- 0.0604472000 0.4233890000 0.0050537800
- 0.0605373000 0.4329100000 0.0051180300
- 0.0606276000 0.4408890000 0.0051607300
- 0.0607181000 0.4255290000 0.0050392200
- 0.0608087000 0.4258950000 0.0050403000
- 0.0608996000 0.4366720000 0.0051354300
- 0.0609907000 0.4407980000 0.0051481100
- 0.0610820000 0.4293660000 0.0050589900
- 0.0611735000 0.4249940000 0.0050332000
- 0.0612652000 0.4355760000 0.0050996000
- 0.0613571000 0.4295640000 0.0050421300
- 0.0614493000 0.4430700000 0.0051774300
- 0.0615416000 0.4344460000 0.0050926100
- 0.0616341000 0.4348250000 0.0050941900
- 0.0617269000 0.4324130000 0.0050705000
- 0.0618198000 0.4351130000 0.0050833600
- 0.0619130000 0.4411200000 0.0051235100
- 0.0620064000 0.4407970000 0.0051150700
- 0.0620999000 0.4462590000 0.0051590200
- 0.0621937000 0.4464100000 0.0051660100
- 0.0622877000 0.4459680000 0.0051429300
- 0.0623820000 0.4417470000 0.0051056000
- 0.0624764000 0.4428140000 0.0051343700
- 0.0625711000 0.4491040000 0.0051763700
- 0.0626659000 0.4345430000 0.0050585800
- 0.0627610000 0.4537800000 0.0052156100
- 0.0628563000 0.4511810000 0.0051892800
- 0.0629518000 0.4520820000 0.0051929500
- 0.0630476000 0.4520850000 0.0051665400
- 0.0631435000 0.4420880000 0.0050990000
- 0.0632397000 0.4541530000 0.0051977600
- 0.0633361000 0.4533220000 0.0051831300
- 0.0634327000 0.4501850000 0.0051595700
- 0.0635295000 0.4470780000 0.0051243400
- 0.0636266000 0.4567580000 0.0052076500
- 0.0637239000 0.4566740000 0.0052055000
- 0.0638214000 0.4510250000 0.0051572800
- 0.0639191000 0.4577750000 0.0051887600
- 0.0640170000 0.4524020000 0.0051677900
- 0.0641152000 0.4499800000 0.0051514000
- 0.0642136000 0.4602860000 0.0052139000
- 0.0643123000 0.4528570000 0.0051709500
- 0.0644111000 0.4570050000 0.0051967400
- 0.0645102000 0.4554940000 0.0051667400
- 0.0646095000 0.4530000000 0.0051423000
- 0.0647091000 0.4613750000 0.0052267100
- 0.0648088000 0.4571620000 0.0051689500
- 0.0649088000 0.4618310000 0.0052142000
- 0.0650091000 0.4640030000 0.0052055200
- 0.0651095000 0.4610620000 0.0051992700
- 0.0652102000 0.4671310000 0.0052284900
- 0.0653112000 0.4596270000 0.0051841900
- 0.0654123000 0.4594730000 0.0051877000
- 0.0655137000 0.4657600000 0.0052205300
- 0.0656154000 0.4620730000 0.0051899400
- 0.0657173000 0.4598440000 0.0051897800
- 0.0658194000 0.4666440000 0.0052318700
- 0.0659217000 0.4631770000 0.0052037600
- 0.0660243000 0.4578680000 0.0051453200
- 0.0661272000 0.4734300000 0.0052657000
- 0.0662302000 0.4663760000 0.0052068700
- 0.0663335000 0.4625070000 0.0051687700
- 0.0664371000 0.4743710000 0.0052790100
- 0.0665409000 0.4665920000 0.0051764700
- 0.0666449000 0.4808710000 0.0053176100
- 0.0667492000 0.4640420000 0.0051964500
- 0.0668538000 0.4761390000 0.0052757000
- 0.0669585000 0.4702740000 0.0052266200
- 0.0670635000 0.4752240000 0.0052724000
- 0.0671688000 0.4710070000 0.0052209800
- 0.0672743000 0.4744370000 0.0052586000
- 0.0673801000 0.4796730000 0.0053231000
- 0.0674861000 0.4883540000 0.0053518300
- 0.0675924000 0.4708700000 0.0052055500
- 0.0676989000 0.4776300000 0.0052670600
- 0.0678057000 0.4761730000 0.0052528900
- 0.0679127000 0.4818470000 0.0053039100
- 0.0680200000 0.4836860000 0.0052938900
- 0.0681275000 0.4851110000 0.0053059100
- 0.0682353000 0.4754810000 0.0052343100
- 0.0683433000 0.4804070000 0.0052691900
- 0.0684516000 0.4787260000 0.0052597800
- 0.0685602000 0.4858840000 0.0053387100
- 0.0686690000 0.4849950000 0.0052950800
- 0.0687781000 0.4878700000 0.0053398500
- 0.0688874000 0.4842570000 0.0053035200
- 0.0689970000 0.4850490000 0.0052904700
- 0.0691069000 0.4852950000 0.0053044500
- 0.0692170000 0.4850380000 0.0052843900
- 0.0693274000 0.4890390000 0.0053332200
- 0.0694380000 0.4892100000 0.0053315800
- 0.0695489000 0.4926820000 0.0053455800
- 0.0696601000 0.4888110000 0.0053100700
- 0.0697716000 0.4840630000 0.0052805200
- 0.0698833000 0.4814990000 0.0052605800
- 0.0699952000 0.4859700000 0.0052821200
- 0.0701075000 0.4938690000 0.0053462700
- 0.0702200000 0.4883440000 0.0053003500
- 0.0703328000 0.4922020000 0.0053154900
- 0.0704459000 0.4942320000 0.0053287300
- 0.0705592000 0.4829880000 0.0052746000
- 0.0706728000 0.4891500000 0.0052942000
- 0.0707867000 0.4906360000 0.0053187300
- 0.0709009000 0.5014050000 0.0054075400
- 0.0710153000 0.5106360000 0.0054634600
- 0.0711300000 0.5014880000 0.0053934600
- 0.0712450000 0.4920530000 0.0053114900
- 0.0713603000 0.4981080000 0.0053597600
- 0.0714758000 0.4932910000 0.0053111300
- 0.0715917000 0.5036820000 0.0054037600
- 0.0717078000 0.5050830000 0.0054203100
- 0.0718242000 0.5002330000 0.0053462800
- 0.0719409000 0.5097120000 0.0054391300
- 0.0720578000 0.5014410000 0.0053696200
- 0.0721751000 0.5032090000 0.0053883100
- 0.0722926000 0.4972380000 0.0053427500
- 0.0724104000 0.5108540000 0.0054713900
- 0.0725285000 0.5034620000 0.0053889100
- 0.0726469000 0.4936430000 0.0053058300
- 0.0727656000 0.5020660000 0.0053655400
- 0.0728846000 0.4992740000 0.0053572300
- 0.0730039000 0.5125260000 0.0054481200
- 0.0731235000 0.5120020000 0.0054629000
- 0.0732433000 0.5133060000 0.0054362300
- 0.0733635000 0.5080210000 0.0054183500
- 0.0734839000 0.5143310000 0.0054530900
- 0.0736047000 0.5032030000 0.0053526100
- 0.0737257000 0.5049940000 0.0053852700
- 0.0738471000 0.5149280000 0.0054407700
- 0.0739687000 0.5083220000 0.0053965100
- 0.0740907000 0.5109540000 0.0054143700
- 0.0742129000 0.5139330000 0.0054216200
- 0.0743355000 0.5175890000 0.0054742900
- 0.0744583000 0.5114440000 0.0054267700
- 0.0745815000 0.5198270000 0.0054877600
- 0.0747050000 0.5304020000 0.0055670000
- 0.0748287000 0.5172210000 0.0054553700
- 0.0749528000 0.5213010000 0.0054929200
- 0.0750772000 0.5133730000 0.0054268300
- 0.0752019000 0.5160780000 0.0054472500
- 0.0753269000 0.5123360000 0.0054066700
- 0.0754522000 0.5203840000 0.0054681500
- 0.0755779000 0.5181280000 0.0054554900
- 0.0757038000 0.5135480000 0.0054199300
- 0.0758301000 0.5138410000 0.0054326600
- 0.0759567000 0.5241750000 0.0055179400
- 0.0760836000 0.5345120000 0.0055729900
- 0.0762108000 0.5220310000 0.0054845000
- 0.0763383000 0.5371940000 0.0055680400
- 0.0764662000 0.5244510000 0.0055030500
- 0.0765944000 0.5186210000 0.0054478500
- 0.0767229000 0.5203900000 0.0054592700
- 0.0768517000 0.5317800000 0.0055431000
- 0.0769808000 0.5301660000 0.0055490200
- 0.0771103000 0.5235560000 0.0054994300
- 0.0772401000 0.5179700000 0.0054488500
- 0.0773702000 0.5353360000 0.0055786900
- 0.0775007000 0.5223380000 0.0054644900
- 0.0776315000 0.5249980000 0.0054896000
- 0.0777626000 0.5279830000 0.0055143000
- 0.0778941000 0.5356400000 0.0055535500
- 0.0780258000 0.5387040000 0.0055952600
- 0.0781580000 0.5427290000 0.0056204000
- 0.0782904000 0.5435020000 0.0056436800
- 0.0784232000 0.5337330000 0.0055427800
- 0.0785564000 0.5292940000 0.0055174000
- 0.0786898000 0.5228490000 0.0054643800
- 0.0788236000 0.5304200000 0.0055351400
- 0.0789578000 0.5373740000 0.0055639200
- 0.0790923000 0.5402340000 0.0055972900
- 0.0792271000 0.5267600000 0.0054971700
- 0.0793623000 0.5444700000 0.0056385200
- 0.0794978000 0.5445040000 0.0056343700
- 0.0796337000 0.5360880000 0.0055581800
- 0.0797700000 0.5313590000 0.0055336400
- 0.0799065000 0.5407460000 0.0056093600
- 0.0800435000 0.5393080000 0.0055838300
- 0.0801807000 0.5376440000 0.0055791100
- 0.0803184000 0.5418370000 0.0056146500
- 0.0804564000 0.5446280000 0.0056356000
- 0.0805947000 0.5465380000 0.0056302300
- 0.0807334000 0.5450420000 0.0056374800
- 0.0808725000 0.5454180000 0.0056286400
- 0.0810119000 0.5476610000 0.0056457600
- 0.0811517000 0.5430560000 0.0056185900
- 0.0812918000 0.5461560000 0.0056218200
- 0.0814323000 0.5507220000 0.0056776300
- 0.0815732000 0.5418600000 0.0056094400
- 0.0817144000 0.5543990000 0.0056910300
- 0.0818560000 0.5482990000 0.0056502200
- 0.0819980000 0.5545530000 0.0056794400
- 0.0821404000 0.5549290000 0.0056947700
- 0.0822831000 0.5487630000 0.0056469000
- 0.0824262000 0.5592810000 0.0057070100
- 0.0825696000 0.5457930000 0.0056318700
- 0.0827134000 0.5575350000 0.0057382600
- 0.0828577000 0.5545020000 0.0056839500
- 0.0830022000 0.5600890000 0.0057288800
- 0.0831472000 0.5482500000 0.0056453900
- 0.0832926000 0.5504550000 0.0056491800
- 0.0834383000 0.5523460000 0.0056892300
- 0.0835844000 0.5558040000 0.0057043100
- 0.0837309000 0.5487730000 0.0056505300
- 0.0838778000 0.5556580000 0.0057049200
- 0.0840250000 0.5560660000 0.0057100700
- 0.0841727000 0.5572950000 0.0057040200
- 0.0843207000 0.5595000000 0.0057283100
- 0.0844692000 0.5597330000 0.0057458900
- 0.0846180000 0.5496280000 0.0056536400
- 0.0847672000 0.5692860000 0.0058060100
- 0.0849168000 0.5653290000 0.0057931700
- 0.0850669000 0.5682450000 0.0058106300
- 0.0852173000 0.5649420000 0.0057718600
- 0.0853681000 0.5611840000 0.0057462400
- 0.0855193000 0.5650720000 0.0057776200
- 0.0856709000 0.5510260000 0.0056896300
- 0.0858229000 0.5594060000 0.0057397500
- 0.0859753000 0.5710450000 0.0058267600
- 0.0861282000 0.5605280000 0.0057408400
- 0.0862814000 0.5745240000 0.0058599400
- 0.0864350000 0.5650190000 0.0058182700
- 0.0865891000 0.5629220000 0.0057792000
- 0.0867436000 0.5611480000 0.0057587400
- 0.0868985000 0.5707550000 0.0058408900
- 0.0870538000 0.5655840000 0.0057953800
- 0.0872095000 0.5719140000 0.0058516200
- 0.0873656000 0.5773650000 0.0058847000
- 0.0875221000 0.5788070000 0.0059105200
- 0.0876791000 0.5798920000 0.0059019100
- 0.0878365000 0.5696960000 0.0058285300
- 0.0879943000 0.5661480000 0.0057831800
- 0.0881526000 0.5723950000 0.0058628600
- 0.0883113000 0.5846030000 0.0059500300
- 0.0884704000 0.5734080000 0.0058374600
- 0.0886299000 0.5765500000 0.0058708600
- 0.0887899000 0.5683620000 0.0058144700
- 0.0889503000 0.5820350000 0.0059320100
- 0.0891111000 0.5849940000 0.0059610800
- 0.0892724000 0.5852560000 0.0059598800
- 0.0894341000 0.5773600000 0.0058778300
- 0.0895962000 0.5771240000 0.0058951000
- 0.0897588000 0.5846870000 0.0059389500
- 0.0899218000 0.5732720000 0.0058596600
- 0.0900853000 0.5798740000 0.0059254100
- 0.0902492000 0.5740480000 0.0058984200
- 0.0904136000 0.5679380000 0.0058366200
- 0.0905784000 0.5834490000 0.0059433600
- 0.0907437000 0.5890250000 0.0060052500
- 0.0909094000 0.5841110000 0.0059725700
- 0.0910756000 0.5849060000 0.0059738700
- 0.0912422000 0.5856360000 0.0059935000
- 0.0914093000 0.5896260000 0.0059979300
- 0.0915769000 0.5802830000 0.0059334900
- 0.0917449000 0.5797970000 0.0059278600
- 0.0919133000 0.5887980000 0.0059936000
- 0.0920823000 0.5904810000 0.0060392700
- 0.0922517000 0.5825630000 0.0059739800
- 0.0924216000 0.5868350000 0.0060074900
- 0.0925919000 0.5920710000 0.0060173600
- 0.0927627000 0.5957620000 0.0060482700
- 0.0929340000 0.5924350000 0.0060631200
- 0.0931058000 0.5920660000 0.0060416300
- 0.0932780000 0.5984880000 0.0060849900
- 0.0934507000 0.5937670000 0.0060880400
- 0.0936239000 0.5909320000 0.0060419800
- 0.0937976000 0.5889930000 0.0060164000
- 0.0939718000 0.5933340000 0.0060770800
- 0.0941464000 0.6009840000 0.0061403000
- 0.0943215000 0.6040290000 0.0061400200
- 0.0944972000 0.5901110000 0.0060286100
- 0.0946733000 0.5938780000 0.0060796700
- 0.0948499000 0.5858460000 0.0060092600
- 0.0950270000 0.5980720000 0.0061107600
- 0.0952046000 0.5995770000 0.0061469300
- 0.0953827000 0.5959760000 0.0061132400
- 0.0955613000 0.5974210000 0.0061282800
- 0.0957404000 0.5993740000 0.0061328100
- 0.0959200000 0.6020010000 0.0061841800
- 0.0961001000 0.5974090000 0.0061181400
- 0.0962807000 0.5971780000 0.0061254800
- 0.0964619000 0.5977720000 0.0061110700
- 0.0966435000 0.5974820000 0.0061356900
- 0.0968257000 0.5855880000 0.0060543900
- 0.0970083000 0.6057970000 0.0062198400
- 0.0971915000 0.6066180000 0.0062137400
- 0.0973752000 0.6055970000 0.0062268400
- 0.0975594000 0.5990480000 0.0061655200
- 0.0977442000 0.5937200000 0.0061059000
- 0.0979295000 0.5994730000 0.0061540700
- 0.0981153000 0.6048950000 0.0062064600
- 0.0983016000 0.5960030000 0.0061455700
- 0.0984885000 0.6112600000 0.0062618300
- 0.0986759000 0.6041150000 0.0062090300
- 0.0988638000 0.6105330000 0.0062288300
- 0.0990523000 0.6119550000 0.0062900000
- 0.0992413000 0.6093650000 0.0062534700
- 0.0994308000 0.6057100000 0.0062401600
- 0.0996209000 0.6117800000 0.0062810300
- 0.0998116000 0.6070230000 0.0062463200
- 0.1000030000 0.6159220000 0.0063362900
- 0.1001940000 0.6112820000 0.0062921700
- 0.1003870000 0.6125920000 0.0062966900
- 0.1005800000 0.6091700000 0.0062787800
- 0.1007730000 0.6117690000 0.0063052600
- 0.1009670000 0.6134840000 0.0063308900
- 0.1011610000 0.6063490000 0.0062735100
- 0.1013570000 0.6146290000 0.0063233900
- 0.1015520000 0.6138260000 0.0063416300
- 0.1017480000 0.6107160000 0.0063252300
- 0.1019450000 0.6118210000 0.0063203100
- 0.1021430000 0.6049840000 0.0062755100
- 0.1023400000 0.6123910000 0.0063279900
- 0.1025390000 0.6140220000 0.0063885500
- 0.1027380000 0.6134950000 0.0063571700
- 0.1029380000 0.6133180000 0.0063673800
- 0.1031380000 0.6164100000 0.0063973300
- 0.1033390000 0.6282400000 0.0064822500
- 0.1035400000 0.6166550000 0.0064083700
- 0.1037420000 0.6156190000 0.0064080000
- 0.1039450000 0.6122320000 0.0063627600
- 0.1041480000 0.6116640000 0.0063840500
- 0.1043520000 0.6180940000 0.0064175900
- 0.1045560000 0.5983930000 0.0062734500
- 0.1047610000 0.6206310000 0.0064556800
- 0.1049670000 0.6244750000 0.0064508800
- 0.1051730000 0.6212430000 0.0064912000
- 0.1053800000 0.6264570000 0.0065292700
- 0.1055870000 0.6248980000 0.0065124500
- 0.1057950000 0.6118310000 0.0063658200
- 0.1060040000 0.6189050000 0.0064673100
- 0.1062130000 0.6226870000 0.0064897800
- 0.1064230000 0.6328870000 0.0066076800
- 0.1066340000 0.6197190000 0.0064947600
- 0.1068450000 0.6245920000 0.0064932000
- 0.1070560000 0.6248770000 0.0065493900
- 0.1072690000 0.6223910000 0.0065399900
- 0.1074820000 0.6220280000 0.0065058600
- 0.1076950000 0.6338960000 0.0066191900
- 0.1079100000 0.6335300000 0.0066379300
- 0.1081250000 0.6188980000 0.0065073800
- 0.1083400000 0.6288610000 0.0065909800
- 0.1085560000 0.6262480000 0.0065734900
- 0.1087730000 0.6269410000 0.0065898600
- 0.1089910000 0.6185000000 0.0065238500
- 0.1092090000 0.6255310000 0.0065975300
- 0.1094280000 0.6233070000 0.0065697200
- 0.1096470000 0.6284980000 0.0066081600
- 0.1098680000 0.6249150000 0.0065939600
- 0.1100880000 0.6415790000 0.0067320400
- 0.1103100000 0.6121640000 0.0064875200
- 0.1105320000 0.6320730000 0.0066613900
- 0.1107550000 0.6384260000 0.0067299900
- 0.1109780000 0.6292840000 0.0066533700
- 0.1112020000 0.6252620000 0.0066409300
- 0.1114270000 0.6356810000 0.0067473900
- 0.1116530000 0.6385940000 0.0067639200
- 0.1118790000 0.6311540000 0.0067395300
- 0.1121060000 0.6273020000 0.0066777700
- 0.1123340000 0.6461250000 0.0068187200
- 0.1125620000 0.6303370000 0.0067115500
- 0.1127910000 0.6265710000 0.0067090800
- 0.1130200000 0.6292400000 0.0066887400
- 0.1132510000 0.6433480000 0.0068338800
- 0.1134820000 0.6387700000 0.0068040400
- 0.1137140000 0.6324310000 0.0067391500
- 0.1139460000 0.6344760000 0.0068039800
- 0.1141800000 0.6294810000 0.0067477400
- 0.1144130000 0.6341900000 0.0067952000
- 0.1146480000 0.6501730000 0.0069274300
- 0.1148840000 0.6341400000 0.0067976300
- 0.1151200000 0.6305110000 0.0067816300
- 0.1153560000 0.6378110000 0.0068541900
- 0.1155940000 0.6375140000 0.0068605500
- 0.1158320000 0.6490350000 0.0069621800
- 0.1160710000 0.6504960000 0.0069807000
- 0.1163110000 0.6410030000 0.0068701000
- 0.1165520000 0.6339940000 0.0068542800
- 0.1167930000 0.6415800000 0.0069109400
- 0.1170350000 0.6341000000 0.0068555600
- 0.1172780000 0.6406030000 0.0069276700
- 0.1175210000 0.6376450000 0.0069009700
- 0.1177660000 0.6333950000 0.0068799600
- 0.1180110000 0.6366480000 0.0069089500
- 0.1182570000 0.6429350000 0.0069563600
- 0.1185030000 0.6382600000 0.0069582500
- 0.1187500000 0.6432740000 0.0070114900
- 0.1189990000 0.6405530000 0.0069589600
- 0.1192480000 0.6341100000 0.0069306300
- 0.1194970000 0.6430110000 0.0070236800
- 0.1197480000 0.6502080000 0.0070752200
- 0.1199990000 0.6455120000 0.0070673500
- 0.1202510000 0.6457570000 0.0070667000
- 0.1205040000 0.6393590000 0.0070088900
- 0.1207580000 0.6474890000 0.0070692600
- 0.1210120000 0.6269210000 0.0069242400
- 0.1212670000 0.6411570000 0.0070380400
- 0.1215230000 0.6546100000 0.0071781900
- 0.1217800000 0.6359020000 0.0070138600
- 0.1220380000 0.6514610000 0.0071713800
- 0.1222960000 0.6496690000 0.0071439500
- 0.1225560000 0.6506590000 0.0071701200
- 0.1228160000 0.6549800000 0.0072365700
- 0.1230770000 0.6483870000 0.0071701800
- 0.1233390000 0.6553200000 0.0072540500
- 0.1236020000 0.6496990000 0.0071727100
- 0.1238650000 0.6493840000 0.0071965600
- 0.1241290000 0.6459240000 0.0071502200
- 0.1243950000 0.6503690000 0.0072098200
- 0.1246610000 0.6365050000 0.0071448600
- 0.1249280000 0.6457360000 0.0071884700
- 0.1251950000 0.6445450000 0.0071884400
- 0.1254640000 0.6499770000 0.0072387800
- 0.1257330000 0.6598350000 0.0073183900
- 0.1260040000 0.6488650000 0.0072350600
- 0.1262750000 0.6401350000 0.0071845700
- 0.1265470000 0.6505700000 0.0073031200
- 0.1268200000 0.6455920000 0.0072566300
- 0.1270940000 0.6453560000 0.0072667600
- 0.1273690000 0.6429820000 0.0072783400
- 0.1276440000 0.6457390000 0.0072900300
- 0.1279210000 0.6569010000 0.0073832600
- 0.1281980000 0.6407380000 0.0072954200
- 0.1284770000 0.6470470000 0.0073084200
- 0.1287560000 0.6487270000 0.0073566700
- 0.1290360000 0.6565860000 0.0074438800
- 0.1293170000 0.6532220000 0.0074508700
- 0.1295990000 0.6582660000 0.0074420600
- 0.1298820000 0.6367050000 0.0072865500
- 0.1301660000 0.6543360000 0.0074417000
- 0.1304510000 0.6580210000 0.0075013400
- 0.1307370000 0.6507560000 0.0074049200
- 0.1310230000 0.6592310000 0.0075244300
- 0.1313110000 0.6703690000 0.0076516400
- 0.1315990000 0.6616600000 0.0075912900
- 0.1318890000 0.6677120000 0.0076499200
- 0.1321790000 0.6507760000 0.0074917200
- 0.1324710000 0.6561100000 0.0075313400
- 0.1327630000 0.6546040000 0.0075230300
- 0.1330570000 0.6643320000 0.0076392100
- 0.1333510000 0.6584610000 0.0075840800
- 0.1336460000 0.6443010000 0.0074538200
- 0.1339420000 0.6588070000 0.0076140800
- 0.1342400000 0.6550240000 0.0076209300
- 0.1345380000 0.6496200000 0.0075716200
- 0.1348370000 0.6670090000 0.0077368500
- 0.1351380000 0.6616650000 0.0076634200
- 0.1354390000 0.6580790000 0.0076795000
- 0.1357410000 0.6599080000 0.0076960800
- 0.1360440000 0.6603810000 0.0077080000
- 0.1363490000 0.6528760000 0.0076605800
- 0.1366540000 0.6477670000 0.0076118000
- 0.1369600000 0.6488430000 0.0076541600
- 0.1372680000 0.6508670000 0.0076625600
- 0.1375760000 0.6568600000 0.0077200800
- 0.1378860000 0.6624280000 0.0077972700
- 0.1381960000 0.6545680000 0.0077737900
- 0.1385080000 0.6631220000 0.0078567200
- 0.1388200000 0.6559560000 0.0078022200
- 0.1391340000 0.6576330000 0.0078381100
- 0.1394490000 0.6668420000 0.0079115400
- 0.1397650000 0.6576030000 0.0078372700
- 0.1400810000 0.6652870000 0.0079775800
- 0.1403990000 0.6587700000 0.0078515700
- 0.1407180000 0.6445380000 0.0077311600
- 0.1410390000 0.6609600000 0.0079353700
- 0.1413600000 0.6548400000 0.0078772900
- 0.1416820000 0.6651370000 0.0080095300
- 0.1420060000 0.6652620000 0.0079911700
- 0.1423300000 0.6600700000 0.0079311600
- 0.1426560000 0.6563530000 0.0079429900
- 0.1429820000 0.6658230000 0.0080197800
- 0.1433100000 0.6569080000 0.0079545700
- 0.1436390000 0.6592390000 0.0079741800
- 0.1439700000 0.6537310000 0.0079598500
- 0.1443010000 0.6558050000 0.0080255200
- 0.1446330000 0.6544090000 0.0079551400
- 0.1449670000 0.6644570000 0.0080966300
- 0.1453020000 0.6615340000 0.0080508400
- 0.1456380000 0.6693120000 0.0082081900
- 0.1459750000 0.6604740000 0.0081455900
- 0.1463130000 0.6589040000 0.0081090200
- 0.1466520000 0.6651010000 0.0081850000
- 0.1469930000 0.6716310000 0.0082543600
- 0.1473350000 0.6714330000 0.0082797200
- 0.1476780000 0.6651650000 0.0082379700
- 0.1480220000 0.6525020000 0.0081215600
- 0.1483670000 0.6680530000 0.0082459700
- 0.1487140000 0.6622360000 0.0082296200
- 0.1490620000 0.6573100000 0.0082364600
- 0.1494110000 0.6601750000 0.0082469300
- 0.1497610000 0.6630680000 0.0082910500
- 0.1501130000 0.6734830000 0.0083709900
- 0.1504650000 0.6673720000 0.0083661100
- 0.1508190000 0.6606760000 0.0082982300
- 0.1511740000 0.6619780000 0.0083472000
- 0.1515310000 0.6671400000 0.0084244500
- 0.1518890000 0.6426720000 0.0081752700
- 0.1522480000 0.6587070000 0.0083505000
- 0.1526080000 0.6592540000 0.0083439300
- 0.1529700000 0.6518580000 0.0083641800
- 0.1533320000 0.6595580000 0.0083854200
- 0.1536970000 0.6537210000 0.0083339600
- 0.1540620000 0.6733490000 0.0085766400
- 0.1544290000 0.6643060000 0.0085143800
- 0.1547970000 0.6700930000 0.0085493300
- 0.1551660000 0.6626450000 0.0085336700
- 0.1555370000 0.6510470000 0.0084401800
- 0.1559090000 0.6594350000 0.0084843700
- 0.1562820000 0.6633000000 0.0085927400
- 0.1566570000 0.6872160000 0.0088619600
- 0.1570330000 0.6604000000 0.0085364300
- 0.1574110000 0.6553920000 0.0085197400
- 0.1577890000 0.6614380000 0.0085955300
- 0.1581700000 0.6674080000 0.0086958700
- 0.1585510000 0.6563070000 0.0085734100
- 0.1589340000 0.6629980000 0.0086661800
- 0.1593180000 0.6709620000 0.0087894000
- 0.1597040000 0.6648870000 0.0087362100
- 0.1600910000 0.6638190000 0.0087456300
- 0.1604800000 0.6577940000 0.0087197000
- 0.1608700000 0.6661810000 0.0088142000
- 0.1612610000 0.6619930000 0.0087317400
- 0.1616540000 0.6681780000 0.0088419800
- 0.1620480000 0.6519560000 0.0087224900
- 0.1624440000 0.6557310000 0.0087371000
- 0.1628410000 0.6467430000 0.0086389300
- 0.1632390000 0.6667090000 0.0089259600
- 0.1636390000 0.6621380000 0.0089215000
- 0.1640410000 0.6652240000 0.0089421400
- 0.1644440000 0.6749740000 0.0090480100
- 0.1648480000 0.6441130000 0.0087475400
- 0.1652540000 0.6767550000 0.0090849500
- 0.1656620000 0.6517400000 0.0088503400
- 0.1660710000 0.6534900000 0.0088800500
- 0.1664810000 0.6595910000 0.0089885500
- 0.1668930000 0.6556920000 0.0089703800
- 0.1673070000 0.6502500000 0.0088946700
- 0.1677220000 0.6592000000 0.0089986900
- 0.1681390000 0.6711450000 0.0091209800
- 0.1685570000 0.6529740000 0.0089785900
- 0.1689760000 0.6439680000 0.0088881500
- 0.1693980000 0.6625660000 0.0090488600
- 0.1698210000 0.6587410000 0.0091145600
- 0.1702450000 0.6638590000 0.0092262700
- 0.1706710000 0.6467050000 0.0090275500
- 0.1710990000 0.6584110000 0.0091638600
- 0.1715280000 0.6627000000 0.0092473700
- 0.1719590000 0.6472260000 0.0090813000
- 0.1723920000 0.6493680000 0.0090903200
- 0.1728260000 0.6534980000 0.0091847700
- 0.1732620000 0.6535240000 0.0091978400
- 0.1736990000 0.6526570000 0.0091584800
- 0.1741380000 0.6635810000 0.0093228300
- 0.1745790000 0.6570410000 0.0093023400
- 0.1750210000 0.6510930000 0.0092566600
- 0.1754660000 0.6465730000 0.0091774700
- 0.1759110000 0.6552240000 0.0093317800
- 0.1763590000 0.6425070000 0.0091562000
- 0.1768080000 0.6361220000 0.0091284500
- 0.1772590000 0.6548690000 0.0093976800
- 0.1777120000 0.6583230000 0.0093741100
- 0.1781660000 0.6578090000 0.0094552000
- 0.1786230000 0.6345370000 0.0092239200
- 0.1790800000 0.6459190000 0.0093445600
- 0.1795400000 0.6461020000 0.0093543900
- 0.1800020000 0.6398490000 0.0092696500
- 0.1804650000 0.6491950000 0.0095092000
- 0.1809300000 0.6425230000 0.0093461800
- 0.1813970000 0.6555370000 0.0095394100
- 0.1818650000 0.6583600000 0.0096096600
- 0.1823360000 0.6519620000 0.0095464500
- 0.1828080000 0.6418160000 0.0094663000
- 0.1832820000 0.6337920000 0.0093659300
- 0.1837580000 0.6516530000 0.0095990200
- 0.1842360000 0.6519200000 0.0096207300
- 0.1847160000 0.6499820000 0.0096459700
- 0.1851970000 0.6451210000 0.0095505800
- 0.1856810000 0.6372430000 0.0095119100
- 0.1861660000 0.6484540000 0.0096393100
- 0.1866540000 0.6559030000 0.0097349600
- 0.1871430000 0.6480900000 0.0096780300
- 0.1876340000 0.6518460000 0.0096847900
- 0.1881270000 0.6168750000 0.0093615800
- 0.1886220000 0.6568590000 0.0098667800
- 0.1891190000 0.6278800000 0.0095116300
- 0.1896180000 0.6542310000 0.0097937900
- 0.1901190000 0.6161870000 0.0094203600
- 0.1906210000 0.6302730000 0.0095372400
- 0.1911260000 0.6315810000 0.0096071100
- 0.1916330000 0.6330500000 0.0095897600
- 0.1921420000 0.6461380000 0.0098335100
- 0.1926530000 0.6409020000 0.0097469400
- 0.1931660000 0.6325660000 0.0097392900
- 0.1936810000 0.6722530000 0.0101404000
- 0.1941980000 0.6367230000 0.0097573000
- 0.1947170000 0.6418340000 0.0098287700
- 0.1952390000 0.6315660000 0.0097223700
- 0.1957620000 0.6329870000 0.0097772900
- 0.1962870000 0.6358040000 0.0098107600
- 0.1968150000 0.6523920000 0.0100704000
- 0.1973450000 0.6251520000 0.0098247900
- 0.1978760000 0.6405460000 0.0098966900
- 0.1984100000 0.6441030000 0.0099935600
- 0.1989470000 0.6430800000 0.0099798500
- 0.1994850000 0.6451180000 0.0100421000
- 0.2000250000 0.6118440000 0.0096411400
- 0.2005680000 0.6129990000 0.0096834500
- 0.2011130000 0.6330560000 0.0099697600
- 0.2016600000 0.6433630000 0.0100650000
- 0.2022100000 0.6198270000 0.0097464100
- 0.2027610000 0.6343180000 0.0099789700
- 0.2033150000 0.6250140000 0.0099285300
- 0.2038710000 0.6210020000 0.0098223700
- 0.2044300000 0.6210030000 0.0098522900
- 0.2049910000 0.6192400000 0.0098631000
- 0.2055540000 0.6290070000 0.0099661500
- 0.2061190000 0.6242160000 0.0099617700
- 0.2066870000 0.6158110000 0.0099229800
- 0.2072570000 0.6422050000 0.0102852000
- 0.2078290000 0.6071110000 0.0097946300
- 0.2084040000 0.5940340000 0.0096354300
- 0.2089810000 0.6071700000 0.0098623800
- 0.2095610000 0.6139020000 0.0099429100
- 0.2101430000 0.6180880000 0.0099462400
- 0.2107270000 0.6059080000 0.0098726400
- 0.2113140000 0.6189020000 0.0100270000
- 0.2119040000 0.6168330000 0.0099549000
- 0.2124950000 0.6092530000 0.0098644000
- 0.2130900000 0.6106230000 0.0099392700
- 0.2136860000 0.6253190000 0.0101581000
- 0.2142860000 0.5937240000 0.0096500800
- 0.2148880000 0.6107830000 0.0099897800
- 0.2154920000 0.6103940000 0.0100153000
- 0.2160990000 0.5958640000 0.0098561800
- 0.2167080000 0.5945760000 0.0098123300
- 0.2173200000 0.6116010000 0.0099718700
- 0.2179350000 0.5892250000 0.0097261800
- 0.2185520000 0.6077990000 0.0099886900
- 0.2191720000 0.5871980000 0.0097902300
- 0.2197950000 0.6097440000 0.0100385000
- 0.2204200000 0.5976870000 0.0099408800
- 0.2210480000 0.6163180000 0.0101556000
- 0.2216780000 0.5939800000 0.0099060100
- 0.2223120000 0.6025720000 0.0100036000
- 0.2229480000 0.5984860000 0.0099563200
- 0.2235860000 0.6011660000 0.0099977600
- 0.2242280000 0.5934770000 0.0099519300
- 0.2248720000 0.5980510000 0.0100402000
- 0.2255190000 0.5885300000 0.0098864700
- 0.2261690000 0.5977770000 0.0100451000
- 0.2268210000 0.5912650000 0.0099989000
- 0.2274770000 0.5853150000 0.0099252000
- 0.2281350000 0.5781480000 0.0097612100
- 0.2287960000 0.5784410000 0.0098194300
- 0.2294600000 0.5738520000 0.0097352700
- 0.2301270000 0.5692700000 0.0097121100
- 0.2307970000 0.5834270000 0.0099291900
- 0.2314700000 0.5764720000 0.0098490200
- 0.2321450000 0.5537320000 0.0095531100
- 0.2328240000 0.5671500000 0.0097803600
- 0.2335060000 0.5625890000 0.0096750600
- 0.2341900000 0.5637310000 0.0096888800
- 0.2348780000 0.5640550000 0.0096747500
- 0.2355690000 0.5566980000 0.0095852600
- 0.2362620000 0.5695520000 0.0098087100
- 0.2369590000 0.5611270000 0.0097439400
- 0.2376590000 0.5464420000 0.0095272600
- 0.2383620000 0.5468830000 0.0095641300
- 0.2390680000 0.5683290000 0.0098204300
- 0.2397780000 0.5529960000 0.0096440300
- 0.2404900000 0.5587760000 0.0097400800
- 0.2412060000 0.5401180000 0.0094815700
- 0.2419240000 0.5365920000 0.0094617700
- 0.2426460000 0.5369340000 0.0094595300
- 0.2433720000 0.5488340000 0.0096463600
- 0.2441000000 0.5346510000 0.0093995300
- 0.2448320000 0.5256610000 0.0093446500
- 0.2455670000 0.5236900000 0.0093014900
- 0.2463060000 0.5217600000 0.0092963300
- 0.2470470000 0.5363730000 0.0095619900
- 0.2477920000 0.5436740000 0.0095068100
- 0.2485410000 0.5071170000 0.0091562200
- 0.2492930000 0.4999150000 0.0090243500
- 0.2500480000 0.5258490000 0.0093633700
- 0.2508070000 0.5151620000 0.0092407000
- 0.2515690000 0.5133330000 0.0091874700
- 0.2523350000 0.4857070000 0.0088689000
- 0.2531040000 0.5101750000 0.0092440900
- 0.2538760000 0.4951150000 0.0090151800
- 0.2546530000 0.5004030000 0.0091104200
- 0.2554320000 0.5033120000 0.0091733400
- 0.2562160000 0.5018190000 0.0091721100
- 0.2570030000 0.4940080000 0.0090076200
- 0.2577940000 0.4652390000 0.0086472000
- 0.2585880000 0.4884990000 0.0089667100
- 0.2593860000 0.4860460000 0.0090486500
- 0.2601870000 0.4727900000 0.0087479200
- 0.2609930000 0.4770020000 0.0088678400
- 0.2618020000 0.4606310000 0.0086346300
- 0.2626150000 0.4573520000 0.0085854000
- 0.2634310000 0.4596690000 0.0086408600
- 0.2642520000 0.4583820000 0.0086000500
- 0.2650760000 0.4532550000 0.0086079600
- 0.2659050000 0.4485410000 0.0084718700
- 0.2667370000 0.4390160000 0.0084000100
- 0.2675730000 0.4486140000 0.0085130500
- 0.2684130000 0.4460620000 0.0085466200
- 0.2692560000 0.4284950000 0.0083179500
- 0.2701040000 0.4379820000 0.0084130700
- 0.2709560000 0.4235110000 0.0082473600
- 0.2718120000 0.4124030000 0.0080969600
- 0.2726720000 0.4192180000 0.0081894700
- 0.2735360000 0.4155820000 0.0080998000
- 0.2744040000 0.4047200000 0.0080210900
- 0.2752770000 0.4121050000 0.0080963800
- 0.2761530000 0.4148850000 0.0081204800
- 0.2770340000 0.3976860000 0.0079098400
- 0.2779190000 0.3941810000 0.0078828800
- 0.2788080000 0.4072820000 0.0080882600
- 0.2797020000 0.3824020000 0.0077673200
- 0.2805990000 0.3807990000 0.0077541900
- 0.2815010000 0.3832910000 0.0077486300
- 0.2824080000 0.3756810000 0.0077015600
- 0.2833190000 0.3534090000 0.0073841800
- 0.2842340000 0.3483260000 0.0073446300
- 0.2851530000 0.3547730000 0.0073708500
- 0.2860780000 0.3398820000 0.0071720800
- 0.2870060000 0.3498170000 0.0073611900
- 0.2879390000 0.3450920000 0.0072861100
- 0.2888770000 0.3434220000 0.0073017000
- 0.2898190000 0.3338730000 0.0071955700
- 0.2907660000 0.3198580000 0.0069775300
- 0.2917180000 0.3164100000 0.0069073200
- 0.2926740000 0.3082800000 0.0067407400
- 0.2936350000 0.3184840000 0.0069385400
- 0.2946010000 0.2970430000 0.0066727600
- 0.2955710000 0.2969410000 0.0066335900
- 0.2965470000 0.2921440000 0.0065998500
- 0.2975270000 0.2899100000 0.0065716300
- 0.2985120000 0.2755000000 0.0063548700
- 0.2995020000 0.2852390000 0.0065377400
- 0.3004960000 0.2707630000 0.0062916200
- 0.3014960000 0.2686870000 0.0062971700
- 0.3025010000 0.2764950000 0.0064141900
- 0.3035110000 0.2631090000 0.0062413800
- 0.3045260000 0.2610320000 0.0062016700
- 0.3055460000 0.2457540000 0.0060088100
- 0.3065710000 0.2440190000 0.0059607200
- 0.3076010000 0.2416830000 0.0059614200
- 0.3086370000 0.2426300000 0.0059581900
- 0.3096770000 0.2365220000 0.0058394900
- 0.3107230000 0.2254500000 0.0056724300
- 0.3117750000 0.2383070000 0.0058860700
- 0.3128310000 0.2255380000 0.0056778100
- 0.3138930000 0.2197840000 0.0056298700
- 0.3149610000 0.2153870000 0.0055032500
- 0.3160340000 0.2125640000 0.0054832900
- 0.3171120000 0.2168940000 0.0055800600
- 0.3181960000 0.2037540000 0.0053770900
- 0.3192850000 0.2096720000 0.0054795700
- 0.3203800000 0.2080720000 0.0054587900
- 0.3214810000 0.1999950000 0.0053426700
- 0.3225880000 0.2025950000 0.0053841100
- 0.3237000000 0.2012510000 0.0053951900
- 0.3248180000 0.2009320000 0.0053375400
- 0.3259410000 0.1948790000 0.0052250400
- 0.3270710000 0.1941250000 0.0052427500
- 0.3282060000 0.1936580000 0.0052246000
- 0.3293480000 0.2031960000 0.0053662900
- 0.3304950000 0.1922910000 0.0051784000
- 0.3316480000 0.1931200000 0.0052393400
- 0.3328080000 0.1880110000 0.0051249700
- 0.3339730000 0.1955820000 0.0052667600
- 0.3351450000 0.1958080000 0.0052572900
- 0.3363220000 0.1904180000 0.0051622600
- 0.3375060000 0.1882420000 0.0051269000
- 0.3386970000 0.1940240000 0.0052358800
- 0.3398930000 0.1936130000 0.0052107900
- 0.3410960000 0.2002310000 0.0053435600
- 0.3423050000 0.1915370000 0.0051872800
- 0.3435210000 0.1848860000 0.0051023600
- 0.3447430000 0.1886470000 0.0051727500
- 0.3459720000 0.1892260000 0.0051700900
- 0.3472070000 0.1894500000 0.0051542900
- 0.3484490000 0.1939320000 0.0053045300
- 0.3496980000 0.1875590000 0.0051271500
- 0.3509530000 0.1985200000 0.0052917800
- 0.3522150000 0.1892110000 0.0051589200
- 0.3534840000 0.1955050000 0.0052520100
- 0.3547600000 0.1910400000 0.0052088800
- 0.3560430000 0.1858880000 0.0050868500
- 0.3573330000 0.1911820000 0.0051920700
- 0.3586290000 0.1933290000 0.0052499500
- 0.3599330000 0.1909120000 0.0052355100
- 0.3612440000 0.1841550000 0.0050694900
- 0.3625620000 0.1926200000 0.0052135300
- 0.3638880000 0.1841860000 0.0051101600
- 0.3652200000 0.1767180000 0.0049978200
- 0.3665600000 0.1786440000 0.0050096400
- 0.3679080000 0.1825640000 0.0050871400
- 0.3692620000 0.1763680000 0.0049717700
- 0.3706250000 0.1714510000 0.0049114500
- 0.3719940000 0.1636920000 0.0047961500
- 0.3733720000 0.1659550000 0.0048132600
- 0.3747570000 0.1689970000 0.0048685900
- 0.3761500000 0.1617580000 0.0047766000
- 0.3775500000 0.1524690000 0.0045973200
- 0.3789590000 0.1490820000 0.0045675800
- 0.3803750000 0.1457750000 0.0045125400
- 0.3817990000 0.1442540000 0.0044923300
- 0.3832320000 0.1404380000 0.0044429200
- 0.3846720000 0.1390770000 0.0044069100
- 0.3861210000 0.1279110000 0.0042296600
- 0.3875770000 0.1212870000 0.0041073000
- 0.3890420000 0.1164060000 0.0040034100
- 0.3905160000 0.1179760000 0.0040630500
- 0.3919970000 0.1171900000 0.0040334900
- 0.3934880000 0.1028250000 0.0037459400
- 0.3949860000 0.1074540000 0.0038800000
- 0.3964930000 0.0937941000 0.0036150100
- 0.3980090000 0.0917835000 0.0035951900
- 0.3995340000 0.0851818000 0.0034207700
- 0.4010670000 0.0816513000 0.0033748100
- 0.4026090000 0.0749277000 0.0032652000
- 0.4041600000 0.0694071000 0.0031046800
- 0.4057210000 0.0658407000 0.0030047500
- 0.4072900000 0.0588130000 0.0028535000
- 0.4088680000 0.0576435000 0.0028365200
- 0.4104550000 0.0492701000 0.0026144100
- 0.4120520000 0.0457286000 0.0025384900
- 0.4136580000 0.0441065000 0.0025042700
- 0.4152740000 0.0363506000 0.0022885500
- 0.4168990000 0.0355030000 0.0022483500
- 0.4185330000 0.0368358000 0.0022977800
- 0.4201770000 0.0295313000 0.0020816900
- 0.4218310000 0.0245506000 0.0019220800
- 0.4234950000 0.0223490000 0.0018345100
- 0.4251680000 0.0190743000 0.0017217800
- 0.4268520000 0.0192426000 0.0017265300
- 0.4285450000 0.0197984000 0.0017420900
- 0.4302490000 0.0147931000 0.0015667700
- 0.4319620000 0.0135225000 0.0014973200
- 0.4336860000 0.0135138000 0.0015057000
- 0.4354210000 0.0115326000 0.0014092100
- 0.4371650000 0.0094757000 0.0013173800
- 0.4389210000 0.0062075400 0.0011555200
- 0.4406860000 0.0078734600 0.0012312900
- 0.4424630000 0.0066580500 0.0011806700
- 0.4442500000 0.0079308900 0.0012536000
- 0.4460480000 0.0076187000 0.0012319400
- 0.4478570000 0.0053951800 0.0011111900
- 0.4496780000 0.0046622500 0.0010672700
- 0.4515090000 0.0024646800 0.0009129800
- 0.4533510000 0.0063284200 0.0011694100
- 0.4552050000 0.0043364300 0.0010433400
- 0.4570700000 0.0049012300 0.0010741100
- 0.4589470000 0.0043931900 0.0010384700
- 0.4608350000 0.0067581100 0.0011889200
- 0.4627350000 0.0053351500 0.0011123500
- 0.4646460000 0.0065700100 0.0011840100
- 0.4665700000 0.0076171800 0.0012349600
- 0.4685050000 0.0078465900 0.0012397800
- 0.4704530000 0.0096253700 0.0013231000
- 0.4724130000 0.0105303000 0.0013723900
- 0.4743850000 0.0105175000 0.0013709000
- 0.4763690000 0.0110166000 0.0014049100
- 0.4783660000 0.0136702000 0.0015064200
- 0.4803750000 0.0137035000 0.0015212300
- 0.4823970000 0.0149983000 0.0015651700
- 0.4844320000 0.0180374000 0.0016823800
- 0.4864800000 0.0228847000 0.0018553600
- 0.4885410000 0.0256035000 0.0019409300
- 0.4906150000 0.0337665000 0.0022049000
- 0.4927020000 0.0323731000 0.0021638200
- 0.4948020000 0.0387303000 0.0023333100
- 0.4969160000 0.0406215000 0.0024033500
- 0.4990440000 0.0513221000 0.0026822100
- 0.5011850000 0.0559387000 0.0027935200
- 0.5033400000 0.0684816000 0.0030580200
- 0.5055090000 0.0730981000 0.0031594800
- 0.5076920000 0.0835820000 0.0033465900
- 0.5098890000 0.0900047000 0.0034744500
- 0.5121010000 0.1049470000 0.0037708800
- 0.5143270000 0.1121340000 0.0038850000
- 0.5165670000 0.1301930000 0.0042347800
- 0.5188220000 0.1337220000 0.0042466000
- 0.5210920000 0.1546800000 0.0046092500
- 0.5233770000 0.1700200000 0.0048266300
- 0.5256770000 0.1809680000 0.0049759300
- 0.5279920000 0.1960560000 0.0052146200
- 0.5303230000 0.2141390000 0.0055117900
- 0.5326690000 0.2310250000 0.0057223900
- 0.5350300000 0.2439360000 0.0058937900
- 0.5374080000 0.2606330000 0.0061097300
- 0.5398010000 0.2743850000 0.0062830300
- 0.5422100000 0.3010360000 0.0065962800
- 0.5446350000 0.3210930000 0.0068430400
- 0.5470770000 0.3278600000 0.0069572700
- 0.5495350000 0.3434080000 0.0071402500
- 0.5520100000 0.3631460000 0.0073499000
- 0.5545010000 0.3792230000 0.0075503500
- 0.5570090000 0.3919540000 0.0076411100
- 0.5595350000 0.4108540000 0.0078913300
- 0.5620770000 0.4283020000 0.0080404400
- 0.5646370000 0.4518300000 0.0083736500
- 0.5672150000 0.4436830000 0.0082226300
- 0.5698100000 0.4781510000 0.0086096500
- 0.5724230000 0.4979310000 0.0088615800
- 0.5750540000 0.4981750000 0.0088587200
- 0.5777040000 0.5089570000 0.0089199800
- 0.5803710000 0.5362230000 0.0092226600
- 0.5830570000 0.5319110000 0.0091741800
- 0.5857620000 0.5461550000 0.0093249000
- 0.5884860000 0.5536020000 0.0093534700
- 0.5912280000 0.5798190000 0.0096601700
- 0.5939900000 0.5837880000 0.0096866300
- 0.5967720000 0.5904500000 0.0096955900
- 0.5995730000 0.5971420000 0.0098114700
- 0.6023930000 0.6098310000 0.0099711700
- 0.6052340000 0.6467700000 0.0103494000
- 0.6080950000 0.6468100000 0.0103023000
- 0.6109760000 0.6412360000 0.0102679000
- 0.6138780000 0.6682350000 0.0106020000
- 0.6168000000 0.6630540000 0.0104038000
- 0.6197430000 0.6729180000 0.0105172000
- 0.6227080000 0.6874670000 0.0107085000
- 0.6256930000 0.6911650000 0.0107258000
- 0.6287010000 0.6992010000 0.0107589000
- 0.6317300000 0.7356410000 0.0112009000
- 0.6347810000 0.7182020000 0.0109651000
- 0.6378540000 0.7258120000 0.0110427000
- 0.6409490000 0.7326990000 0.0111846000
- 0.6440670000 0.7353980000 0.0111235000
- 0.6472080000 0.7468270000 0.0113102000
- 0.6503720000 0.7474300000 0.0112506000
- 0.6535590000 0.7652710000 0.0114692000
- 0.6567700000 0.7704820000 0.0114942000
- 0.6600040000 0.7685840000 0.0114141000
- 0.6632620000 0.7806660000 0.0115365000
- 0.6665450000 0.7749690000 0.0114329000
- 0.6698510000 0.7968750000 0.0117492000
- 0.6731830000 0.7898190000 0.0116338000
- 0.6765400000 0.7876150000 0.0115358000
- 0.6799210000 0.8190460000 0.0119197000
- 0.6833280000 0.8008630000 0.0115867000
- 0.6867610000 0.8223790000 0.0118416000
- 0.6902200000 0.8004570000 0.0116480000
- 0.6937040000 0.7902720000 0.0114908000
- 0.6972160000 0.8325020000 0.0120150000
- 0.7007540000 0.8252540000 0.0118742000
- 0.7043190000 0.8329880000 0.0120047000
- 0.7079110000 0.8276480000 0.0119163000
- 0.7115310000 0.8333310000 0.0119912000
- 0.7151790000 0.8379890000 0.0120661000
- 0.7188550000 0.8366440000 0.0119914000
- 0.7225590000 0.8353810000 0.0119631000
- 0.7262920000 0.8462020000 0.0119346000
- 0.7300540000 0.8444560000 0.0120219000
- 0.7338450000 0.8767970000 0.0124183000
- 0.7376660000 0.8621040000 0.0122376000
- 0.7415170000 0.8727730000 0.0123456000
- 0.7453980000 0.8760530000 0.0124194000
- 0.7493090000 0.8538420000 0.0121120000
- 0.7532520000 0.8815020000 0.0124752000
- 0.7572250000 0.8862980000 0.0124783000
- 0.7612310000 0.8664640000 0.0122482000
- 0.7652680000 0.8861740000 0.0124456000
- 0.7693370000 0.8802190000 0.0124033000
- 0.7734390000 0.8761450000 0.0122630000
- 0.7775730000 0.8920140000 0.0124723000
- 0.7817410000 0.8758080000 0.0122385000
- 0.7859430000 0.8662250000 0.0121332000
- 0.7901780000 0.8948590000 0.0124961000
- 0.7944480000 0.8793230000 0.0122900000
- 0.7987530000 0.8906860000 0.0123820000
- 0.8030920000 0.8700710000 0.0122142000
- 0.8074670000 0.8921130000 0.0123642000
- 0.8118780000 0.8838610000 0.0122717000
- 0.8163250000 0.8852110000 0.0123098000
- 0.8208090000 0.9023810000 0.0125131000
- 0.8253300000 0.8932090000 0.0124025000
- 0.8298880000 0.8880420000 0.0123339000
- 0.8344840000 0.8775610000 0.0121884000
- 0.8391190000 0.9049700000 0.0125807000
- 0.8437920000 0.8935110000 0.0123909000
- 0.8485040000 0.9024020000 0.0124728000
- 0.8532560000 0.8954260000 0.0124495000
- 0.8580480000 0.8804120000 0.0121873000
- 0.8628800000 0.8887400000 0.0122616000
- 0.8677530000 0.8944820000 0.0123386000
- 0.8726680000 0.8791170000 0.0121681000
- 0.8776250000 0.8843070000 0.0122284000
- 0.8826240000 0.8697340000 0.0120935000
- 0.8876660000 0.8916090000 0.0123976000
- 0.8927510000 0.8720590000 0.0121138000
- 0.8978800000 0.8628220000 0.0120310000
- 0.9030530000 0.8669140000 0.0120630000
- 0.9082710000 0.8816130000 0.0122048000
- 0.9135340000 0.8573030000 0.0119960000
- 0.9188440000 0.8629390000 0.0120386000
- 0.9241990000 0.8610360000 0.0119964000
- 0.9296020000 0.8606260000 0.0119677000
- 0.9350520000 0.8575870000 0.0119299000
- 0.9405510000 0.8156320000 0.0114533000
- 0.9460980000 0.8462460000 0.0118583000
- 0.9516940000 0.8214460000 0.0115875000
- 0.9573400000 0.8004130000 0.0113428000
- 0.9630360000 0.7877540000 0.0112784000
- 0.9687830000 0.7828740000 0.0112134000
- 0.9745820000 0.7613300000 0.0109850000
- 0.9804330000 0.7380910000 0.0107068000
- 0.9863370000 0.7365560000 0.0107819000
- 0.9922950000 0.7148410000 0.0105609000
- 0.9983070000 0.6740860000 0.0101504000
- 1.0043700000 0.6543470000 0.0100207000
- 1.0104900000 0.6189190000 0.0095520700
- 1.0166700000 0.5906250000 0.0093280800
- 1.0229100000 0.5588300000 0.0090223900
- 1.0292000000 0.5237470000 0.0085914200
- 1.0355500000 0.5125840000 0.0085012200
- 1.0419600000 0.4857050000 0.0082489500
- 1.0484300000 0.4894770000 0.0082818000
- 1.0549600000 0.4837510000 0.0082110200
- 1.0615500000 0.4868330000 0.0082638800
- 1.0682000000 0.5244200000 0.0086017200
- 1.0749200000 0.5375020000 0.0086901500
- 1.0817000000 0.5780480000 0.0091468900
- 1.0885400000 0.6026170000 0.0094199000
- 1.0954500000 0.6241780000 0.0095571200
- 1.1024200000 0.6662900000 0.0099437800
- 1.1094700000 0.7104750000 0.0104011000
- 1.1165800000 0.7373280000 0.0106533000
- 1.1237500000 0.7681470000 0.0109742000
- 1.1310000000 0.7890630000 0.0111021000
- 1.1383200000 0.8064960000 0.0112551000
- 1.1457100000 0.8273010000 0.0113718000
- 1.1531700000 0.8318400000 0.0114338000
- 1.1607000000 0.8581590000 0.0116489000
- 1.1683100000 0.8588790000 0.0116946000
- 1.1759900000 0.8826170000 0.0119054000
- 1.1837500000 0.8851580000 0.0119673000
- 1.1915900000 0.8929950000 0.0119578000
- 1.1995000000 0.9040880000 0.0120810000
- 1.2074900000 0.9064460000 0.0120937000
- 1.2155700000 0.9218980000 0.0122492000
- 1.2237200000 0.9105310000 0.0121009000
- 1.2319600000 0.9178100000 0.0122246000
- 1.2402800000 0.9373620000 0.0123772000
- 1.2486800000 0.9239270000 0.0122370000
- 1.2571700000 0.9061390000 0.0119797000
- 1.2657500000 0.9549550000 0.0125805000
- 1.2744200000 0.9360940000 0.0122951000
- 1.2831700000 0.9535140000 0.0124600000
- 1.2920200000 0.9628530000 0.0126062000
- 1.3009600000 0.9447530000 0.0123464000
- 1.3099900000 0.9442880000 0.0123893000
- 1.3191100000 0.9503510000 0.0123617000
- 1.3283300000 0.9396270000 0.0122386000
- 1.3376500000 0.9394060000 0.0122975000
- 1.3470600000 0.9398680000 0.0122608000
- 1.3565800000 0.9387000000 0.0121840000
- 1.3662000000 0.9541890000 0.0123643000
- 1.3759200000 0.9460330000 0.0122159000
- 1.3857400000 0.9623950000 0.0124611000
- 1.3956700000 0.9438030000 0.0123034000
- 1.4019300000 0.9592640000 0.0247807000
- 1.4044400000 0.9135650000 0.0235854000
- 1.4069700000 0.9445070000 0.0247608000
- 1.4095000000 0.9632440000 0.0251395000
- 1.4120300000 0.9815000000 0.0253126000
- 1.4145800000 0.9386600000 0.0240308000
- 1.4171300000 0.9485570000 0.0245540000
- 1.4196800000 0.9251830000 0.0240687000
- 1.4222500000 0.9094210000 0.0238212000
- 1.4248200000 0.9657730000 0.0251165000
- 1.4273900000 0.9449060000 0.0248960000
- 1.4299800000 0.9651640000 0.0249968000
- 1.4325700000 0.9799200000 0.0254148000
- 1.4351700000 0.9851150000 0.0255357000
- 1.4377800000 0.9698740000 0.0250120000
- 1.4403900000 0.9514070000 0.0246799000
- 1.4430100000 0.9755230000 0.0250867000
- 1.4456400000 0.9548780000 0.0245455000
- 1.4482700000 0.9479080000 0.0242858000
- 1.4509100000 1.0168600000 0.0258639000
- 1.4535600000 0.9329350000 0.0242691000
- 1.4562200000 0.9806260000 0.0249191000
- 1.4588800000 0.9209430000 0.0236443000
- 1.4615500000 0.9524660000 0.0246310000
- 1.4642300000 0.9556290000 0.0246301000
- 1.4669100000 0.9470730000 0.0245761000
- 1.4696100000 0.9823250000 0.0254478000
- 1.4723100000 0.9636330000 0.0248635000
- 1.4750100000 0.9999240000 0.0256308000
- 1.4777300000 0.9771720000 0.0250829000
- 1.4804500000 0.9399580000 0.0242063000
- 1.4831800000 0.9720940000 0.0252898000
- 1.4859200000 0.9629310000 0.0248524000
- 1.4886700000 1.0039300000 0.0257570000
- 1.4914200000 0.9796440000 0.0252425000
- 1.4941800000 0.9775470000 0.0249624000
- 1.4969500000 0.9558080000 0.0247690000
- 1.4997200000 0.9448640000 0.0245844000
- 1.5025100000 0.9604090000 0.0246848000
- 1.5053000000 0.9744850000 0.0248092000
- 1.5081000000 0.9756710000 0.0253060000
- 1.5109100000 0.9266900000 0.0238917000
- 1.5137200000 0.9547240000 0.0245760000
- 1.5165400000 0.9408560000 0.0241217000
- 1.5193700000 0.9407810000 0.0243170000
- 1.5222100000 0.9413990000 0.0240252000
- 1.5250600000 0.9592950000 0.0244268000
- 1.5279100000 0.9694530000 0.0246551000
- 1.5307800000 0.9800460000 0.0251141000
- 1.5336500000 0.9312380000 0.0239303000
- 1.5365300000 0.9669940000 0.0249974000
- 1.5394100000 0.9864080000 0.0253112000
- 1.5423100000 0.9160270000 0.0238109000
- 1.5452100000 0.9674450000 0.0248461000
- 1.5481200000 0.9639670000 0.0245769000
- 1.5510400000 0.9711460000 0.0243848000
- 1.5539700000 0.9865100000 0.0251839000
- 1.5569100000 0.9585160000 0.0245663000
- 1.5598500000 0.9490040000 0.0244007000
- 1.5628000000 0.9507770000 0.0245336000
- 1.5657600000 1.0004300000 0.0258088000
- 1.5687300000 0.9576060000 0.0247281000
- 1.5717100000 0.9548090000 0.0245664000
- 1.5747000000 0.9538990000 0.0244941000
- 1.5776900000 0.9592470000 0.0246887000
- 1.5807000000 0.9368200000 0.0238826000
- 1.5837100000 0.9540040000 0.0243632000
- 1.5867300000 0.9380740000 0.0240034000
- 1.5897600000 0.9758390000 0.0248957000
- 1.5928000000 0.9110140000 0.0233662000
- 1.5958500000 0.9515420000 0.0243614000
- 1.5989000000 0.9376490000 0.0241828000
- 1.6019700000 0.9534140000 0.0246137000
- 1.6050400000 0.9342430000 0.0240555000
- 1.6081200000 0.9107270000 0.0234301000
- 1.6112100000 0.9584930000 0.0245296000
- 1.6143100000 0.9684040000 0.0246247000
- 1.6174200000 0.9792000000 0.0250197000
- 1.6205400000 0.9378450000 0.0241833000
- 1.6236700000 0.9134850000 0.0236865000
- 1.6268000000 0.9179520000 0.0235823000
- 1.6299500000 0.9810250000 0.0252688000
- 1.6331000000 0.9770440000 0.0254425000
- 1.6362700000 0.9459700000 0.0244269000
- 1.6394400000 0.9397210000 0.0242894000
- 1.6426200000 0.9225450000 0.0237938000
- 1.6458100000 0.9279290000 0.0241978000
- 1.6490100000 0.9593250000 0.0244302000
- 1.6522200000 0.9141680000 0.0236279000
- 1.6554400000 0.9540250000 0.0243815000
- 1.6586700000 0.9492580000 0.0246251000
- 1.6619100000 0.8918570000 0.0233761000
- 1.6651500000 0.9042670000 0.0235832000
- 1.6684100000 0.8919390000 0.0233148000
- 1.6716800000 0.9217630000 0.0238562000
- 1.6749500000 0.9206860000 0.0239360000
- 1.6782400000 0.9132040000 0.0237442000
- 1.6815400000 0.9048590000 0.0237769000
- 1.6848400000 0.8811800000 0.0231559000
- 1.6881600000 0.8511180000 0.0226281000
- 1.6914800000 0.8676330000 0.0226024000
- 1.6948200000 0.8643760000 0.0227342000
- 1.6981600000 0.8952740000 0.0233521000
- 1.7015100000 0.8881050000 0.0229452000
- 1.7048800000 0.8729110000 0.0228805000
- 1.7082500000 0.8639660000 0.0225780000
- 1.7116400000 0.8684880000 0.0228421000
- 1.7150300000 0.8771430000 0.0228564000
- 1.7184400000 0.8750810000 0.0229720000
- 1.7218500000 0.8854450000 0.0234122000
- 1.7252800000 0.8894990000 0.0233647000
- 1.7287100000 0.8401160000 0.0221147000
- 1.7321600000 0.8561840000 0.0225083000
- 1.7356100000 0.8706620000 0.0227535000
- 1.7390800000 0.8880850000 0.0232324000
- 1.7425500000 0.8616530000 0.0225454000
- 1.7460400000 0.8783360000 0.0231453000
- 1.7495400000 0.8697560000 0.0225765000
- 1.7530500000 0.8709880000 0.0229575000
- 1.7565600000 0.8825950000 0.0232338000
- 1.7600900000 0.8942960000 0.0231445000
- 1.7636300000 0.8887310000 0.0232293000
- 1.7671800000 0.8992880000 0.0234208000
- 1.7707400000 0.8988750000 0.0232567000
- 1.7743200000 0.8531010000 0.0223224000
- 1.7779000000 0.8301600000 0.0220691000
- 1.7814900000 0.9162670000 0.0236004000
- 1.7851000000 0.8850950000 0.0231079000
- 1.7887100000 0.8585540000 0.0223554000
- 1.7923400000 0.9032040000 0.0233552000
- 1.7959800000 0.9186750000 0.0237397000
- 1.7996300000 0.8843230000 0.0228309000
- 1.8032800000 0.8961370000 0.0231490000
- 1.8069600000 0.9107420000 0.0236993000
- 1.8106400000 0.9136750000 0.0235211000
- 1.8143300000 0.9081960000 0.0233922000
- 1.8180400000 0.9320790000 0.0241251000
- 1.8217500000 0.8722850000 0.0227046000
- 1.8254800000 0.8582490000 0.0223063000
- 1.8292200000 0.9404840000 0.0241715000
- 1.8329700000 0.8892120000 0.0227926000
- 1.8367300000 0.9265900000 0.0239280000
- 1.8405000000 0.9757060000 0.0247883000
- 1.8442900000 0.9260930000 0.0238850000
- 1.8480900000 0.9380790000 0.0237701000
- 1.8518900000 0.9184410000 0.0234116000
- 1.8557100000 0.9242720000 0.0238062000
- 1.8595500000 0.9776970000 0.0246730000
- 1.8633900000 0.9304790000 0.0235921000
- 1.8672500000 0.9490040000 0.0241295000
- 1.8711100000 0.9310270000 0.0235198000
- 1.8749900000 0.9345770000 0.0237303000
- 1.8788900000 0.9208970000 0.0234715000
- 1.8827900000 0.9255390000 0.0235830000
- 1.8867100000 0.9139180000 0.0231227000
- 1.8906400000 0.9725000000 0.0244984000
- 1.8945800000 0.9623530000 0.0245530000
- 1.8985300000 0.9220900000 0.0236906000
- 1.9025000000 0.9836100000 0.0246935000
- 1.9064700000 0.9374600000 0.0238940000
- 1.9104600000 0.9468650000 0.0240947000
- 1.9144700000 0.9559380000 0.0243550000
- 1.9184800000 0.9629190000 0.0244577000
- 1.9225100000 0.9591440000 0.0242114000
- 1.9265500000 0.9689060000 0.0241747000
- 1.9306100000 0.9547260000 0.0241415000
- 1.9346700000 0.9877600000 0.0247876000
- 1.9387500000 0.9632370000 0.0243453000
- 1.9428400000 0.9546070000 0.0242363000
- 1.9469500000 0.9698420000 0.0245540000
- 1.9510700000 0.9031820000 0.0228894000
- 1.9552000000 0.9656310000 0.0243729000
- 1.9593400000 0.9498320000 0.0239203000
- 1.9635000000 0.9562270000 0.0240886000
- 1.9676700000 0.9425770000 0.0237672000
- 1.9718600000 0.9331910000 0.0236545000
- 1.9760500000 0.9989940000 0.0251295000
- 1.9802700000 0.9159930000 0.0229817000
- 1.9844900000 0.9679110000 0.0241795000
- 1.9887300000 0.9844360000 0.0248325000
- 1.9929800000 0.9167290000 0.0232135000
- 1.9972500000 0.9112620000 0.0232738000
- 2.0015200000 0.9294840000 0.0236099000
- 2.0058200000 0.9539440000 0.0241429000
- 2.0101200000 0.9453030000 0.0239074000
- 2.0144400000 0.9419770000 0.0239101000
- 2.0187800000 0.9959880000 0.0245893000
- 2.0231300000 0.9689600000 0.0244745000
- 2.0274900000 0.9142470000 0.0230484000
- 2.0318700000 0.9463370000 0.0239751000
- 2.0362600000 0.9374110000 0.0234970000
- 2.0406600000 0.9165970000 0.0232979000
- 2.0450800000 0.9491950000 0.0238393000
- 2.0495200000 0.9141200000 0.0231362000
- 2.0539600000 0.9179960000 0.0232484000
- 2.0584300000 0.9491030000 0.0239801000
- 2.0629000000 0.9826860000 0.0245257000
- 2.0674000000 0.9765780000 0.0246251000
- 2.0719000000 0.9440730000 0.0238260000
- 2.0764200000 0.9508600000 0.0237599000
- 2.0809600000 0.9196270000 0.0230540000
- 2.0855100000 0.9424950000 0.0234969000
- 2.0900800000 0.9531510000 0.0240119000
- 2.0946600000 0.9708800000 0.0245485000
- 2.0992500000 0.9511440000 0.0240343000
- 2.1038700000 0.9145220000 0.0228927000
- 2.1084900000 0.9371930000 0.0236286000
- 2.1131300000 0.9206700000 0.0232026000
- 2.1177900000 0.9123240000 0.0232568000
- 2.1224600000 0.9250150000 0.0234728000
- 2.1271500000 0.9546760000 0.0237558000
- 2.1318500000 0.9546510000 0.0237033000
- 2.1365700000 0.9596980000 0.0242383000
- 2.1413100000 0.9152220000 0.0231210000
- 2.1460600000 0.9164060000 0.0231871000
- 2.1508300000 0.9004370000 0.0228080000
- 2.1556100000 0.9465150000 0.0239682000
- 2.1604100000 0.9464290000 0.0239624000
- 2.1652200000 0.9311050000 0.0235431000
- 2.1700500000 0.9341210000 0.0236769000
- 2.1749000000 0.9678680000 0.0242565000
- 2.1797600000 0.8550180000 0.0219077000
- 2.1846400000 0.9094910000 0.0230705000
- 2.1895300000 0.9337420000 0.0234217000
- 2.1944500000 0.9016160000 0.0228216000
- 2.1993800000 0.8963200000 0.0228433000
- 2.2043200000 0.9297030000 0.0235084000
- 2.2092800000 0.9440470000 0.0236426000
- 2.2142600000 0.9089530000 0.0231651000
- 2.2192600000 0.8834140000 0.0225871000
- 2.2242700000 0.8564640000 0.0222803000
- 2.2293000000 0.8939870000 0.0228107000
- 2.2343500000 0.8806840000 0.0225667000
- 2.2394100000 0.8577640000 0.0219540000
- 2.2444900000 0.8989070000 0.0229261000
- 2.2495900000 0.8630530000 0.0224179000
- 2.2547000000 0.8502840000 0.0218177000
- 2.2598400000 0.8459770000 0.0218328000
- 2.2649900000 0.8439420000 0.0220465000
- 2.2701600000 0.8659500000 0.0224267000
- 2.2753400000 0.8250700000 0.0216004000
- 2.2805500000 0.8275510000 0.0218121000
- 2.2857700000 0.7979550000 0.0208482000
- 2.2910100000 0.8021910000 0.0211464000
- 2.2962600000 0.8308320000 0.0215972000
- 2.3015400000 0.8073500000 0.0212670000
- 2.3068300000 0.7853930000 0.0207942000
- 2.3121500000 0.7703350000 0.0205690000
- 2.3174800000 0.7410430000 0.0199944000
- 2.3228300000 0.7488110000 0.0199746000
- 2.3281900000 0.7398480000 0.0199162000
- 2.3335800000 0.6610480000 0.0184813000
- 2.3389800000 0.7099570000 0.0193555000
- 2.3444100000 0.6519540000 0.0184685000
- 2.3498500000 0.6513830000 0.0185711000
- 2.3553100000 0.6084900000 0.0175830000
- 2.3607900000 0.5778760000 0.0170979000
- 2.3662900000 0.5679720000 0.0168451000
- 2.3718100000 0.5592540000 0.0168393000
- 2.3773500000 0.5302940000 0.0165299000
- 2.3829100000 0.4630160000 0.0148066000
- 2.3884900000 0.4421750000 0.0144649000
- 2.3940800000 0.4293570000 0.0143990000
- 2.3997000000 0.3675160000 0.0130748000
- 2.4053400000 0.3383410000 0.0125427000
- 2.4109900000 0.3193220000 0.0120951000
- 2.4166700000 0.2958780000 0.0116134000
- 2.4223600000 0.2693860000 0.0109843000
- 2.4280800000 0.2537730000 0.0106267000
- 2.4338200000 0.2473240000 0.0104568000
- 2.4395800000 0.2455450000 0.0105195000
- 2.4453500000 0.2222360000 0.0098211400
- 2.4511500000 0.2277480000 0.0099875100
- 2.4569700000 0.2017940000 0.0092062400
- 2.4628100000 0.2323830000 0.0101837000
- 2.4686700000 0.2225490000 0.0097936700
- 2.4745500000 0.2385970000 0.0102979000
- 2.4804500000 0.2640300000 0.0108965000
- 2.4863800000 0.2837970000 0.0111472000
- 2.4923200000 0.3010840000 0.0115715000
- 2.4982900000 0.3432890000 0.0125621000
- 2.5042800000 0.3638800000 0.0129433000
- 2.5102800000 0.4151800000 0.0141039000
- 2.5163200000 0.4216280000 0.0140905000
- 2.5223700000 0.4639400000 0.0149010000
- 2.5284400000 0.4701140000 0.0149375000
- 2.5345400000 0.5355180000 0.0162615000
- 2.5406600000 0.5614410000 0.0169385000
- 2.5468000000 0.5937650000 0.0172447000
- 2.5529600000 0.6374340000 0.0181060000
- 2.5591500000 0.6278030000 0.0179970000
- 2.5653500000 0.6728680000 0.0186420000
- 2.5715800000 0.6907550000 0.0189458000
- 2.5778400000 0.7158640000 0.0193751000
- 2.5841100000 0.7618740000 0.0203713000
- 2.5904100000 0.7133570000 0.0191036000
- 2.5967300000 0.7456470000 0.0198635000
- 2.6030800000 0.7750530000 0.0204398000
- 2.6094500000 0.7508420000 0.0200781000
- 2.6158400000 0.8033730000 0.0211089000
- 2.6222500000 0.7693580000 0.0203470000
- 2.6286900000 0.7584600000 0.0202336000
- 2.6351600000 0.7892450000 0.0208009000
- 2.6416400000 0.7797150000 0.0203026000
- 2.6481500000 0.7483240000 0.0199086000
- 2.6546900000 0.7608350000 0.0202112000
- 2.6612500000 0.7621080000 0.0203159000
- 2.6678300000 0.7600920000 0.0200352000
- 2.6744400000 0.7628320000 0.0202908000
- 2.6810700000 0.7517260000 0.0200935000
- 2.6877300000 0.7489130000 0.0199400000
- 2.6944100000 0.7402930000 0.0198019000
- 2.7011100000 0.7074230000 0.0190785000
- 2.7078500000 0.7125910000 0.0190243000
- 2.7146000000 0.7189610000 0.0194376000
- 2.7213900000 0.7239160000 0.0192146000
- 2.7281900000 0.7084230000 0.0191145000
- 2.7350300000 0.7298650000 0.0195101000
- 2.7418900000 0.7605370000 0.0202923000
- 2.7487700000 0.7581320000 0.0199300000
- 2.7556800000 0.7982390000 0.0207566000
- 2.7626200000 0.7903370000 0.0206569000
- 2.7695800000 0.7979620000 0.0206781000
- 2.7765700000 0.8031070000 0.0207523000
- 2.7835900000 0.8243150000 0.0213118000
- 2.7906300000 0.8401400000 0.0214718000
- 2.7977000000 0.8528780000 0.0217281000
- 2.8048000000 0.8369330000 0.0211388000
- 2.8119200000 0.8854380000 0.0223653000
- 2.8190700000 0.8948050000 0.0224753000
- 2.8262500000 0.8837430000 0.0222193000
- 2.8334500000 0.8875760000 0.0222125000
- 2.8406900000 0.8645730000 0.0217760000
- 2.8479500000 0.8901790000 0.0223077000
- 2.8552300000 0.8846770000 0.0220150000
- 2.8625500000 0.8995910000 0.0224954000
- 2.8699000000 0.9305330000 0.0229008000
- 2.8772700000 0.9014280000 0.0225264000
- 2.8846700000 0.8887380000 0.0220394000
- 2.8921000000 0.9292740000 0.0228944000
- 2.8995600000 0.9039310000 0.0223250000
- 2.9070500000 0.9125260000 0.0224275000
- 2.9145600000 0.9098820000 0.0224207000
- 2.9221100000 0.9084670000 0.0225008000
- 2.9296800000 0.9113570000 0.0226147000
- 2.9372900000 0.8483220000 0.0212017000
- 2.9449200000 0.8801880000 0.0219961000
- 2.9525900000 0.9262880000 0.0228508000
- 2.9602800000 0.9536110000 0.0235776000
- 2.9680000000 0.9096290000 0.0224652000
- 2.9757600000 0.8953650000 0.0222927000
- 2.9835400000 0.9067730000 0.0227141000
- 2.9913600000 0.9132120000 0.0224204000
- 2.9992100000 0.9092000000 0.0224313000
- 3.0070800000 0.8983410000 0.0224401000
- 3.0149900000 0.8880630000 0.0220008000
- 3.0229300000 0.8928400000 0.0222215000
- 3.0309000000 0.8645110000 0.0217452000
- 3.0389000000 0.9178950000 0.0229595000
- 3.0469400000 0.8714180000 0.0218816000
- 3.0550000000 0.8745750000 0.0218609000
- 3.0631000000 0.8790440000 0.0219229000
- 3.0712300000 0.8308500000 0.0210681000
- 3.0794000000 0.8163540000 0.0208673000
- 3.0875900000 0.8256460000 0.0211076000
- 3.0958200000 0.8628530000 0.0216267000
- 3.1040800000 0.8449520000 0.0211708000
- 3.1123700000 0.8146480000 0.0209833000
- 3.1207000000 0.8030310000 0.0207883000
- 3.1290600000 0.7932670000 0.0202539000
- 3.1374600000 0.7873180000 0.0201087000
- 3.1458900000 0.8108630000 0.0210024000
- 3.1543500000 0.7675180000 0.0200975000
- 3.1628400000 0.7469700000 0.0198129000
- 3.1713800000 0.7076650000 0.0190439000
- 3.1799400000 0.6779230000 0.0185025000
- 3.1885400000 0.6752350000 0.0184675000
- 3.1971800000 0.6301410000 0.0177278000
- 3.2058500000 0.6001170000 0.0172730000
- 3.2145500000 0.5703070000 0.0165839000
- 3.2232900000 0.5101430000 0.0153783000
- 3.2320700000 0.4704880000 0.0145772000
- 3.2408800000 0.4002090000 0.0132835000
- 3.2497300000 0.3842960000 0.0131936000
- 3.2586200000 0.3517610000 0.0123947000
- 3.2675400000 0.3182900000 0.0117945000
- 3.2765000000 0.2819510000 0.0109806000
- 3.2854900000 0.2596060000 0.0105423000
- 3.2945200000 0.2266630000 0.0098057300
- 3.3035900000 0.2308950000 0.0099443300
- 3.3127000000 0.2093550000 0.0093710900
- 3.3218500000 0.1855170000 0.0087611300
- 3.3310300000 0.1954290000 0.0091253600
- 3.3402500000 0.1704780000 0.0084357100
- 3.3495100000 0.1778610000 0.0086007900
- 3.3588100000 0.1698150000 0.0083664000
- 3.3681400000 0.1844800000 0.0089251400
- 3.3775200000 0.2013360000 0.0090743100
- 3.3869300000 0.2095930000 0.0094569700
- 3.3963900000 0.2386920000 0.0100254000
- 3.4058800000 0.2675280000 0.0107380000
- 3.4154200000 0.3029590000 0.0113542000
- 3.4249900000 0.3705610000 0.0128808000
- 3.4346000000 0.4137250000 0.0136852000
- 3.4442600000 0.4645050000 0.0145876000
- 3.4539500000 0.5125510000 0.0156099000
- 3.4636900000 0.5678020000 0.0165431000
- 3.4734700000 0.6011130000 0.0172251000
- 3.4832900000 0.6448990000 0.0178822000
- 3.4931500000 0.6572180000 0.0179269000
- 3.5030500000 0.7114130000 0.0189913000
- 3.5129900000 0.7480650000 0.0196792000
- 3.5229800000 0.7361820000 0.0195526000
- 3.5330100000 0.7879220000 0.0205344000
- 3.5430800000 0.7452980000 0.0195491000
- 3.5532000000 0.7712040000 0.0201426000
- 3.5633600000 0.7670180000 0.0198477000
- 3.5735600000 0.7558110000 0.0196647000
- 3.5838100000 0.7435080000 0.0194330000
- 3.5941000000 0.7418830000 0.0196115000
- 3.6044400000 0.7609820000 0.0199325000
- 3.6148200000 0.7291470000 0.0191767000
- 3.6252400000 0.6903970000 0.0185369000
- 3.6357100000 0.6848980000 0.0185763000
- 3.6462300000 0.6675500000 0.0183615000
- 3.6567900000 0.6378760000 0.0177579000
- 3.6673900000 0.5823090000 0.0166996000
- 3.6780500000 0.5630870000 0.0162611000
- 3.6887500000 0.5483130000 0.0162056000
- 3.6994900000 0.5475730000 0.0161596000
- 3.7102900000 0.5504590000 0.0163414000
- 3.7211300000 0.5720430000 0.0168294000
- 3.7320200000 0.5508560000 0.0163556000
- 3.7429500000 0.5947430000 0.0172490000
- 3.7539400000 0.6132620000 0.0175086000
- 3.7649700000 0.5941350000 0.0168652000
- 3.7760500000 0.6582160000 0.0181185000
- 3.7871800000 0.6645880000 0.0182548000
- 3.7983600000 0.7024840000 0.0189475000
- 3.8095900000 0.7281690000 0.0194000000
- 3.8208700000 0.6830890000 0.0185543000
- 3.8322000000 0.7028670000 0.0190678000
- 3.8435800000 0.6362580000 0.0177979000
- 3.8550100000 0.6527870000 0.0183287000
- 3.8664900000 0.6238610000 0.0178627000
- 3.8780300000 0.5703100000 0.0165942000
- 3.8896100000 0.5740450000 0.0169862000
- 3.9012500000 0.4877390000 0.0152084000
- 3.9129400000 0.4885290000 0.0156341000
- 3.9246800000 0.4650010000 0.0151683000
- 3.9364700000 0.4692270000 0.0152475000
- 3.9483200000 0.4700310000 0.0153216000
- 3.9602200000 0.4960920000 0.0158543000
- 3.9721800000 0.5057440000 0.0161854000
- 3.9841900000 0.5831320000 0.0179393000
- 3.9962500000 0.6073930000 0.0189897000
- 4.0083700000 0.6662360000 0.0202413000
- 4.0205500000 0.6984740000 0.0214665000
- 4.0327800000 0.7439660000 0.0233165000
- 4.0450600000 0.8004770000 0.0260186000
- 4.0574000000 0.7824320000 0.0274392000
- 4.0698000000 0.8784180000 0.0329901000
- 4.0822600000 0.8775350000 0.0377019000
- 4.0947700000 0.8760580000 0.0438873000
- 4.1073400000 0.7839350000 0.0474807000
- 4.1199700000 0.9788290000 0.0621463000
- 4.1326600000 1.0264400000 0.0693284000
- 4.1454000000 0.8176410000 0.0533672000
- 4.1582100000 0.9157950000 0.0557376000
- 4.1710700000 0.9162000000 0.0480224000
- 4.1839900000 0.8696010000 0.0400365000
- 4.1969800000 0.9519930000 0.0372252000
- 4.2100200000 0.9839800000 0.0339105000
- 4.2231300000 0.9502960000 0.0300434000
- 4.2362900000 0.9624540000 0.0286221000
- 4.2495200000 0.9498530000 0.0260583000
- 4.2628100000 0.9251010000 0.0247120000
- 4.2761600000 0.9387460000 0.0246352000
- 4.2895800000 0.9589940000 0.0243943000
- 4.3030600000 0.9698820000 0.0242167000
- 4.3166000000 0.9623060000 0.0235793000
- 4.3302100000 0.9657040000 0.0238545000
- 4.3438800000 1.0031700000 0.0244074000
- 4.3576100000 0.9675060000 0.0234964000
- 4.3714100000 0.9349270000 0.0225669000
- 4.3852800000 0.9579060000 0.0232466000
- 4.3992100000 0.9277390000 0.0221732000
- 4.4132100000 0.9846730000 0.0234894000
- 4.4272800000 0.9845750000 0.0234489000
- 4.4414100000 1.0118000000 0.0238240000
- 4.4556100000 0.9585980000 0.0229066000
- 4.4698800000 0.9533820000 0.0224506000
- 4.4842200000 0.9624150000 0.0225899000
- 4.4986300000 0.9677840000 0.0229785000
- 4.5131000000 0.9826970000 0.0232197000
- 4.5276500000 0.9826070000 0.0233676000
- 4.5422700000 0.9488380000 0.0225314000
- 4.5569600000 0.9907570000 0.0233137000
- 4.5717200000 0.9559990000 0.0226817000
- 4.5865500000 0.9816290000 0.0226932000
- 4.6014500000 0.9768730000 0.0230408000
- 4.6164300000 0.9802180000 0.0231780000
- 4.6314800000 0.9491020000 0.0225352000
- 4.6466000000 1.0058500000 0.0236829000
- 4.6618000000 0.9921860000 0.0231181000
- 4.6770700000 0.9703960000 0.0227913000
- 4.6924200000 0.9714200000 0.0229502000
- 4.7078400000 0.9484080000 0.0224337000
- 4.7233400000 0.9332990000 0.0223029000
- 4.7389100000 0.9635410000 0.0228871000
- 4.7545700000 0.9798830000 0.0231398000
- 4.7703000000 0.9426480000 0.0220059000
- 4.7861100000 0.9433240000 0.0223660000
- 4.8019900000 0.9423990000 0.0221376000
- 4.8179600000 0.9700130000 0.0227580000
- 4.8340100000 0.9345570000 0.0222106000
- 4.8501400000 0.9443970000 0.0222641000
- 4.8663400000 1.0040900000 0.0234774000
- 4.8826300000 0.9723750000 0.0226658000
- 4.8990000000 0.9871560000 0.0231910000
- 4.9154600000 0.9461980000 0.0224995000
- 4.9319900000 0.9818550000 0.0232177000
- 4.9486100000 0.9666480000 0.0226409000
- 4.9653200000 0.9913450000 0.0233561000
- 4.9821100000 0.9996780000 0.0234784000
- 4.9989800000 0.9257980000 0.0216606000
- 5.0159400000 0.9885750000 0.0232679000
- 5.0329900000 0.9750800000 0.0230357000
- 5.0501200000 0.9666050000 0.0231352000
- 5.0673400000 0.9577510000 0.0226194000
- 5.0846500000 0.9403150000 0.0224563000
- 5.1020500000 0.9752410000 0.0234361000
- 5.1195400000 0.9882070000 0.0235583000
- 5.1371200000 0.9341580000 0.0224927000
- 5.1547800000 0.9602660000 0.0231195000
- 5.1725400000 0.9587000000 0.0230835000
- 5.1904000000 0.9492010000 0.0231574000
- 5.2083400000 0.9728040000 0.0236083000
- 5.2263800000 0.9693310000 0.0230717000
- 5.2445100000 0.9721800000 0.0232930000
- 5.2627400000 0.9656560000 0.0229420000
- 5.2810600000 0.9279160000 0.0222408000
- 5.2994700000 0.9169540000 0.0219681000
- 5.3179900000 0.9119520000 0.0219263000
- 5.3366000000 0.9443530000 0.0224419000
- 5.3553100000 0.9178610000 0.0219220000
- 5.3741100000 0.9148550000 0.0217703000
- 5.3930200000 0.8724360000 0.0208530000
- 5.4120300000 0.8925290000 0.0213002000
- 5.4311300000 0.9819530000 0.0228645000
- 5.4503400000 0.9208650000 0.0218984000
- 5.4696500000 0.9633470000 0.0224185000
- 5.4890700000 0.9776380000 0.0228625000
- 5.5085800000 1.0053100000 0.0230169000
- 5.5282000000 0.9559260000 0.0222370000
- 5.5479300000 0.9451720000 0.0223019000
- 5.5677600000 0.9266630000 0.0217713000
- 5.5877000000 0.9709600000 0.0224637000
- 5.6027200000 0.9828850000 0.0321233000
- 5.6127700000 0.9428030000 0.0309389000
- 5.6228500000 0.9900180000 0.0320399000
- 5.6329600000 0.9750980000 0.0312655000
- 5.6430900000 0.9836410000 0.0318548000
- 5.6532400000 1.0087400000 0.0329664000
- 5.6634300000 0.9820400000 0.0323560000
- 5.6736400000 0.9880640000 0.0325502000
- 5.6838900000 0.9674800000 0.0314904000
- 5.6941500000 0.9344780000 0.0311921000
- 5.7044500000 0.9748540000 0.0314480000
- 5.7147800000 0.9118450000 0.0299582000
- 5.7251300000 0.9670560000 0.0315152000
- 5.7355100000 0.9881080000 0.0321895000
- 5.7459200000 0.9219510000 0.0298435000
- 5.7563600000 0.9770050000 0.0314324000
- 5.7668200000 0.9633450000 0.0314080000
- 5.7773200000 0.9342510000 0.0302913000
- 5.7878400000 0.9348690000 0.0308116000
- 5.7983900000 0.9626780000 0.0317179000
- 5.8089800000 0.9093210000 0.0299592000
- 5.8195900000 0.9175240000 0.0307165000
- 5.8302200000 0.9320850000 0.0309125000
- 5.8408900000 0.9431250000 0.0310762000
- 5.8515900000 0.9895030000 0.0322945000
- 5.8623200000 0.9190360000 0.0302231000
- 5.8730700000 0.9284000000 0.0308778000
- 5.8838600000 1.0004000000 0.0326415000
- 5.8946800000 0.9580690000 0.0313301000
- 5.9055200000 0.9180820000 0.0304370000
- 5.9164000000 0.8957010000 0.0300398000
- 5.9273000000 0.8312450000 0.0282444000
- 5.9382400000 0.9303890000 0.0312664000
- 5.9492100000 0.8656470000 0.0292170000
- 5.9602000000 0.8900080000 0.0297892000
- 5.9712300000 0.8169740000 0.0279122000
- 5.9822900000 0.8572970000 0.0291471000
- 5.9933800000 0.9046920000 0.0307815000
- 6.0045000000 0.9016650000 0.0300146000
- 6.0156500000 0.8984670000 0.0303202000
- 6.0268300000 0.8471380000 0.0290220000
- 6.0380400000 0.9007520000 0.0304911000
- 6.0492900000 0.8444970000 0.0285645000
- 6.0605600000 0.8719460000 0.0299097000
- 6.0718700000 0.8222920000 0.0289813000
- 6.0832100000 0.7952710000 0.0275825000
- 6.0945800000 0.8213670000 0.0282364000
- 6.1059800000 0.7834530000 0.0274838000
- 6.1174100000 0.8141270000 0.0284105000
- 6.1288800000 0.7663980000 0.0268012000
- 6.1403800000 0.8270900000 0.0288512000
- 6.1519100000 0.7936400000 0.0281487000
- 6.1634700000 0.7833610000 0.0276137000
- 6.1750700000 0.8241300000 0.0289639000
- 6.1867000000 0.8172670000 0.0286241000
- 6.1983600000 0.8459250000 0.0291004000
- 6.2100600000 0.8091960000 0.0283975000
- 6.2217900000 0.8166800000 0.0285349000
- 6.2335500000 0.8817520000 0.0300535000
- 6.2453400000 0.8975930000 0.0302508000
- 6.2571700000 0.9235840000 0.0312499000
- 6.2690300000 0.9274090000 0.0308904000
- 6.2809300000 0.9183040000 0.0304614000
- 6.2928600000 0.8943330000 0.0302201000
- 6.3048200000 0.9102670000 0.0297859000
- 6.3168200000 0.9684960000 0.0316811000
- 6.3288500000 0.9335380000 0.0305731000
- 6.3409200000 0.9548270000 0.0314186000
- 6.3530200000 0.9398490000 0.0310187000
- 6.3651500000 0.9652750000 0.0312630000
- 6.3773300000 0.9489240000 0.0305991000
- 6.3895300000 0.9633830000 0.0314116000
- 6.4017700000 0.9710110000 0.0319319000
- 6.4140500000 0.9560190000 0.0311100000
- 6.4263600000 0.9577020000 0.0310615000
- 6.4387000000 0.9649580000 0.0316282000
- 6.4510900000 0.9804010000 0.0319488000
- 6.4635100000 0.9882040000 0.0318166000
- 6.4759600000 0.9534830000 0.0310183000
- 6.4884500000 0.9606210000 0.0308531000
- 6.5009700000 0.9306890000 0.0302835000
- 6.5135400000 0.9903480000 0.0319979000
- 6.5261400000 0.9972760000 0.0323905000
- 6.5387700000 0.9411570000 0.0308646000
- 6.5514400000 0.9823790000 0.0321248000
- 6.5641500000 0.9456850000 0.0307970000
- 6.5769000000 0.9462450000 0.0306171000
- 6.5896800000 0.9323960000 0.0301746000
- 6.6025000000 0.9396060000 0.0302462000
- 6.6153600000 0.9229990000 0.0298206000
- 6.6282600000 0.9562290000 0.0307145000
- 6.6411900000 0.9884910000 0.0316659000
- 6.6541600000 0.9775700000 0.0319265000
- 6.6671700000 0.9538620000 0.0310368000
- 6.6802200000 0.9951540000 0.0323563000
- 6.6933000000 0.9086190000 0.0298390000
- 6.7064300000 0.9599610000 0.0311704000
- 6.7195900000 0.9412690000 0.0308060000
- 6.7327900000 0.9351080000 0.0302300000
- 6.7460300000 0.9248780000 0.0303966000
- 6.7593100000 0.9383100000 0.0300967000
- 6.7726300000 0.9554210000 0.0308901000
- 6.7859900000 0.9171090000 0.0298279000
- 6.7993900000 0.9550740000 0.0309371000
- 6.8128200000 0.9041700000 0.0292401000
- 6.8263000000 0.9252980000 0.0300172000
- 6.8398200000 0.9553460000 0.0310740000
- 6.8533800000 0.8991420000 0.0302140000
- 6.8669700000 0.9090290000 0.0297858000
- 6.8806100000 0.9285400000 0.0307186000
- 6.8942900000 0.9311420000 0.0303617000
- 6.9080100000 0.9040810000 0.0301241000
- 6.9217700000 0.9149050000 0.0302832000
- 6.9355800000 0.8753230000 0.0293964000
- 6.9494200000 0.9115340000 0.0299420000
- 6.9633000000 0.8883210000 0.0298782000
- 6.9772300000 0.8782060000 0.0296831000
- 6.9912000000 0.8237740000 0.0279194000
- 7.0052100000 0.8010900000 0.0274705000
- 7.0192600000 0.7950650000 0.0273758000
- 7.0333600000 0.7912850000 0.0271753000
- 7.0475000000 0.8072880000 0.0278709000
- 7.0616800000 0.8564670000 0.0290720000
- 7.0759000000 0.7684240000 0.0265685000
- 7.0901600000 0.7561890000 0.0262593000
- 7.1044700000 0.7429670000 0.0264696000
- 7.1188300000 0.7542560000 0.0264841000
- 7.1332200000 0.6862540000 0.0248953000
- 7.1476600000 0.6798000000 0.0248159000
- 7.1621500000 0.5989590000 0.0230515000
- 7.1766700000 0.6001160000 0.0227714000
- 7.1912500000 0.5689500000 0.0221416000
- 7.2058600000 0.5204390000 0.0210072000
- 7.2205200000 0.5223920000 0.0211553000
- 7.2352300000 0.5119550000 0.0208716000
- 7.2499800000 0.5231910000 0.0209462000
- 7.2647800000 0.5241020000 0.0211471000
- 7.2796200000 0.5424310000 0.0217068000
- 7.2945000000 0.5488300000 0.0217537000
- 7.3094400000 0.5533280000 0.0219139000
- 7.3244200000 0.5310700000 0.0214232000
- 7.3394400000 0.4987910000 0.0205042000
- 7.3545100000 0.5121140000 0.0210709000
- 7.3696300000 0.4997620000 0.0206218000
- 7.3847900000 0.4534560000 0.0195112000
- 7.4000000000 0.4335880000 0.0191079000
- 7.4152600000 0.4323040000 0.0189059000
- 7.4305700000 0.4309580000 0.0192856000
- 7.4459200000 0.4595680000 0.0202032000
- 7.4613200000 0.5274710000 0.0219023000
- 7.4767700000 0.5346740000 0.0221766000
- 7.4922600000 0.5590340000 0.0229536000
- 7.5078100000 0.6266000000 0.0250012000
- 7.5234000000 0.6926630000 0.0272253000
- 7.5390400000 0.7139110000 0.0283471000
- 7.5547300000 0.7789050000 0.0307885000
- 7.5704700000 0.7687010000 0.0308989000
- 7.5862600000 0.8513980000 0.0334405000
- 7.6021000000 0.9122880000 0.0369457000
- 7.6179800000 0.8613890000 0.0346874000
- 7.6339200000 0.9020650000 0.0362335000
- 7.6499100000 0.9387890000 0.0367748000
- 7.6659500000 0.8996380000 0.0349477000
- 7.6820300000 0.9202360000 0.0342620000
- 7.6981700000 0.8770160000 0.0316786000
- 7.7143600000 0.9935290000 0.0346918000
- 7.7306000000 0.9291820000 0.0320297000
- 7.7468900000 0.9358640000 0.0316472000
- 7.7632400000 0.9324360000 0.0312388000
- 7.7796300000 0.9358690000 0.0310654000
- 7.7960800000 0.9472900000 0.0314852000
- 7.8125800000 0.9578940000 0.0315666000
- 7.8291300000 0.8956230000 0.0297305000
- 7.8457400000 0.9719840000 0.0311953000
- 7.8624000000 0.9841430000 0.0316835000
- 7.8791100000 0.9634380000 0.0316124000
- 7.8958700000 0.9533770000 0.0309176000
- 7.9126900000 1.0185600000 0.0326970000
- 7.9295600000 0.9873770000 0.0317229000
- 7.9464900000 1.0046700000 0.0319778000
- 7.9634700000 0.9822910000 0.0313286000
- 7.9805000000 0.9763680000 0.0313752000
- 7.9975900000 0.9757430000 0.0315325000
- 8.0147300000 0.9855310000 0.0313232000
- 8.0319300000 0.9304630000 0.0296615000
- 8.0491900000 0.9621450000 0.0307797000
- 8.0665000000 0.9047100000 0.0296192000
- 8.0838600000 0.9942670000 0.0316576000
- 8.1012800000 0.9584290000 0.0312029000
- 8.1187600000 0.9743290000 0.0314716000
- 8.1363000000 0.9590000000 0.0305896000
- 8.1538900000 0.9458760000 0.0307356000
- 8.1715400000 1.0059200000 0.0317628000
- 8.1892500000 0.9631760000 0.0309675000
- 8.2070100000 0.9527180000 0.0305329000
- 8.2248300000 0.9801710000 0.0313653000
- 8.2427100000 0.8855600000 0.0287351000
- 8.2606500000 0.9475180000 0.0304677000
- 8.2786500000 0.9207680000 0.0292790000
- 8.2967100000 0.9343030000 0.0299973000
- 8.3148200000 0.9513310000 0.0304364000
- 8.3330000000 0.9503660000 0.0304590000
- 8.3512300000 0.9525110000 0.0300627000
- 8.3695200000 0.9184410000 0.0296269000
- 8.3878800000 0.9461970000 0.0300430000
- 8.4062900000 0.9617990000 0.0309293000
- 8.4247700000 0.9609620000 0.0306328000
- 8.4433100000 0.9426280000 0.0304243000
- 8.4619000000 0.9362310000 0.0298147000
- 8.4805600000 0.9134540000 0.0291923000
- 8.4992800000 0.9471520000 0.0301252000
- 8.5180700000 0.9155140000 0.0297878000
- 8.5369100000 0.9276610000 0.0298012000
- 8.5558200000 0.9569990000 0.0309046000
- 8.5747900000 0.9370570000 0.0299302000
- 8.5938200000 0.8597810000 0.0281632000
- 8.6129200000 0.9298430000 0.0305164000
- 8.6320800000 0.8529590000 0.0279597000
- 8.6513100000 0.8586270000 0.0282271000
- 8.6706000000 0.7970830000 0.0269651000
- 8.6899500000 0.7898960000 0.0273112000
- 8.7093700000 0.7429330000 0.0253373000
- 8.7288600000 0.7120970000 0.0252451000
- 8.7484000000 0.6409870000 0.0235449000
- 8.7680200000 0.5967740000 0.0223798000
- 8.7877000000 0.5042430000 0.0200379000
- 8.8074500000 0.4796090000 0.0199164000
- 8.8272600000 0.4393860000 0.0190562000
- 8.8471500000 0.4316950000 0.0185525000
- 8.8670900000 0.4018990000 0.0177470000
- 8.8871100000 0.4318190000 0.0185469000
- 8.9071900000 0.5080350000 0.0204524000
- 8.9273500000 0.5372580000 0.0210432000
- 8.9475700000 0.6214280000 0.0232109000
- 8.9678600000 0.6352130000 0.0233379000
- 8.9882100000 0.6970240000 0.0246751000
- 9.0086400000 0.7128690000 0.0251340000
- 9.0291400000 0.7549190000 0.0261690000
- 9.0497100000 0.7361530000 0.0252641000
- 9.0703500000 0.7655730000 0.0260903000
- 9.0910500000 0.7950950000 0.0270575000
- 9.1118300000 0.8268380000 0.0278361000
- 9.1326900000 0.8469050000 0.0278168000
- 9.1536100000 0.8359670000 0.0277347000
- 9.1746000000 0.8854800000 0.0287792000
- 9.1956700000 0.9194850000 0.0294580000
- 9.2168100000 0.9122500000 0.0293980000
- 9.2380200000 0.8552060000 0.0276705000
- 9.2593100000 0.8986820000 0.0289085000
- 9.2806700000 0.9426920000 0.0299642000
- 9.3021000000 0.9511500000 0.0298951000
- 9.3236100000 0.9225370000 0.0290866000
- 9.3451900000 0.9587600000 0.0306440000
- 9.3668500000 0.9897290000 0.0312455000
- 9.3885800000 1.0034100000 0.0312630000
- 9.4103900000 0.9220630000 0.0292444000
- 9.4322800000 0.9655950000 0.0302385000
- 9.4542400000 0.9974470000 0.0315134000
- 9.4762700000 0.9723150000 0.0308708000
- 9.4983900000 1.0382200000 0.0327450000
- 9.5205800000 0.9646570000 0.0305416000
- 9.5428500000 0.9286750000 0.0296677000
- 9.5652000000 0.9527820000 0.0304704000
- 9.5876300000 0.9811320000 0.0307802000
- 9.6101400000 0.9718590000 0.0305917000
- 9.6327200000 0.9592890000 0.0309772000
- 9.6553900000 1.0118000000 0.0320134000
- 9.6781300000 1.0096200000 0.0319125000
- 9.7009600000 0.9570450000 0.0301236000
- 9.7238700000 0.9661190000 0.0298732000
- 9.7468500000 1.0308700000 0.0321823000
- 9.7699200000 0.9955020000 0.0312368000
- 9.7930700000 0.9721960000 0.0306963000
- 9.8163100000 1.0218400000 0.0321273000
- 9.8396300000 1.0361700000 0.0321288000
- 9.8630300000 0.9627600000 0.0304955000
- 9.8865100000 0.9678390000 0.0304200000
- 9.9100800000 1.0251000000 0.0320303000
- 9.9337300000 0.9375480000 0.0298678000
- 9.9574700000 0.9708370000 0.0310280000
- 9.9812900000 0.9668580000 0.0303401000
- 10.0052000000 0.9890420000 0.0309393000
- 10.0292000000 0.9692430000 0.0303646000
- 10.0533000000 0.9255250000 0.0294666000
- 10.0774000000 0.9633090000 0.0301040000
- 10.1017000000 0.9531760000 0.0301100000
- 10.1260000000 0.9941560000 0.0313323000
- 10.1505000000 0.9192600000 0.0290609000
- 10.1750000000 0.9961740000 0.0309639000
- 10.1996000000 0.9587250000 0.0304887000
- 10.2243000000 0.8786680000 0.0282776000
- 10.2491000000 0.8819180000 0.0285556000
- 10.2739000000 0.8753220000 0.0283930000
- 10.2989000000 0.8808340000 0.0286594000
- 10.3240000000 0.8379200000 0.0277051000
- 10.3491000000 0.7958630000 0.0267755000
- 10.3744000000 0.7339550000 0.0248263000
- 10.3997000000 0.7231400000 0.0249977000
- 10.4251000000 0.7027180000 0.0247029000
- 10.4506000000 0.6491200000 0.0233446000
- 10.4763000000 0.6908960000 0.0245396000
- 10.5020000000 0.6651480000 0.0236813000
- 10.5278000000 0.7684190000 0.0261305000
- 10.5537000000 0.8419420000 0.0276975000
- 10.5797000000 0.7986110000 0.0259570000
- 10.6058000000 0.8812660000 0.0285097000
- 10.6319000000 0.9052290000 0.0293789000
- 10.6582000000 0.9102560000 0.0287284000
- 10.6846000000 0.9363990000 0.0298149000
- 10.7111000000 0.9695570000 0.0302238000
- 10.7377000000 0.9901290000 0.0313796000
- 10.7643000000 0.9387910000 0.0298961000
- 10.7911000000 0.9444340000 0.0299494000
- 10.8180000000 0.9214220000 0.0290427000
- 10.8450000000 0.9021210000 0.0289411000
- 10.8721000000 0.8999290000 0.0288136000
- 10.8992000000 0.9359100000 0.0295744000
- 10.9265000000 0.8841690000 0.0285069000
- 10.9539000000 0.9509790000 0.0306558000
- 10.9814000000 0.9043480000 0.0291414000
- 11.0090000000 0.9757470000 0.0308900000
- 11.0367000000 0.8952030000 0.0284728000
- 11.0645000000 0.9095520000 0.0289444000
- 11.0924000000 0.9057940000 0.0285411000
- 11.1204000000 0.8952970000 0.0288534000
- 11.1485000000 0.9287380000 0.0296519000
- 11.1767000000 0.9127360000 0.0292197000
- 11.2051000000 0.9644070000 0.0305814000
- 11.2335000000 0.8998210000 0.0285709000
- 11.2621000000 0.9411300000 0.0300337000
- 11.2907000000 0.9224960000 0.0287960000
- 11.3195000000 0.9230570000 0.0290650000
- 11.3484000000 0.8871440000 0.0283397000
- 11.3773000000 0.8742540000 0.0283264000
- 11.4064000000 0.8345460000 0.0272954000
- 11.4357000000 0.8172740000 0.0270072000
- 11.4650000000 0.7509760000 0.0254104000
- 11.4944000000 0.7290090000 0.0251159000
- 11.5240000000 0.6666840000 0.0238522000
- 11.5536000000 0.6008070000 0.0224678000
- 11.5834000000 0.5549270000 0.0213590000
- 11.6133000000 0.5465370000 0.0210868000
- 11.6433000000 0.5417880000 0.0205402000
- 11.6734000000 0.5899770000 0.0218969000
- 11.7037000000 0.6172730000 0.0225442000
- 11.7340000000 0.7371510000 0.0253574000
- 11.7645000000 0.8039410000 0.0266341000
- 11.7951000000 0.8744580000 0.0285992000
- 11.8258000000 0.9066830000 0.0289233000
- 11.8567000000 0.9032390000 0.0290235000
- 11.8876000000 0.9336530000 0.0298871000
- 11.9187000000 0.9254120000 0.0294399000
- 11.9499000000 0.9574590000 0.0301012000
- 11.9812000000 0.9330920000 0.0297990000
- 12.0127000000 0.9459030000 0.0300118000
- 12.0442000000 0.9104480000 0.0290143000
- 12.0759000000 0.8508080000 0.0274255000
- 12.1078000000 0.8758370000 0.0282944000
- 12.1397000000 0.8596240000 0.0279793000
- 12.1718000000 0.8722400000 0.0280747000
- 12.2040000000 0.8691240000 0.0285237000
- 12.2363000000 0.8344600000 0.0273193000
- 12.2688000000 0.9358410000 0.0300150000
- 12.3013000000 0.8932610000 0.0289755000
- 12.3341000000 0.8989630000 0.0289457000
- 12.3669000000 0.8523650000 0.0274145000
- 12.3999000000 0.8195040000 0.0265523000
- 12.4330000000 0.8308000000 0.0269507000
- 12.4662000000 0.8066070000 0.0266905000
- 12.4996000000 0.7575630000 0.0255497000
- 12.5331000000 0.7906100000 0.0269478000
- 12.5668000000 0.7971270000 0.0268678000
- 12.6006000000 0.6987160000 0.0239932000
- 12.6345000000 0.7795070000 0.0261590000
- 12.6685000000 0.7391180000 0.0249865000
- 12.7027000000 0.7867680000 0.0266593000
- 12.7371000000 0.7716010000 0.0261414000
- 12.7715000000 0.8392530000 0.0275599000
- 12.8061000000 0.8636960000 0.0277963000
- 12.8409000000 0.8335590000 0.0268517000
- 12.8758000000 0.9356060000 0.0295442000
- 12.9108000000 0.9310430000 0.0293838000
- 12.9460000000 0.9806990000 0.0302894000
- 12.9813000000 1.0254300000 0.0321313000
- 13.0168000000 0.9417190000 0.0294721000
- 13.0524000000 0.9623980000 0.0303364000
- 13.0882000000 0.9240910000 0.0287440000
- 13.1241000000 0.9400080000 0.0293815000
- 13.1601000000 0.9098450000 0.0287010000
- 13.1963000000 0.9428510000 0.0298311000
- 13.2327000000 0.9286080000 0.0296482000
- 13.2692000000 0.9194570000 0.0292360000
- 13.3059000000 0.9663880000 0.0300527000
- 13.3427000000 0.9501960000 0.0296460000
- 13.3796000000 0.9640250000 0.0306763000
- 13.4167000000 0.9874520000 0.0305698000
- 13.4540000000 0.9398640000 0.0290083000
- 13.4914000000 0.9914280000 0.0311939000
- 13.5290000000 0.9507190000 0.0297632000
- 13.5667000000 0.9297310000 0.0295921000
- 13.6046000000 0.9625230000 0.0300035000
- 13.6427000000 0.9426530000 0.0295572000
- 13.6809000000 0.9399850000 0.0298510000
- 13.7193000000 0.9859800000 0.0316477000
- 13.7578000000 0.9746220000 0.0304666000
- 13.7965000000 0.9870130000 0.0304781000
- 13.8354000000 0.9743500000 0.0303469000
- 13.8744000000 0.9375750000 0.0290959000
- 13.9136000000 0.9854080000 0.0306815000
- 13.9530000000 0.9021840000 0.0284320000
- 13.9925000000 1.0006800000 0.0312224000
- 14.0322000000 0.9204890000 0.0291536000
- 14.0721000000 1.0110300000 0.0314782000
- 14.1121000000 0.9977520000 0.0310139000
- 14.1523000000 0.9896230000 0.0305688000
- 14.1927000000 0.9718340000 0.0305013000
- 14.2332000000 0.9622840000 0.0299040000
- 14.2740000000 0.9334540000 0.0293410000
- 14.3149000000 0.9717200000 0.0301031000
- 14.3559000000 0.9712350000 0.0304088000
- 14.3972000000 0.9520570000 0.0298148000
- 14.4386000000 0.9611650000 0.0300535000
- 14.4802000000 0.9409330000 0.0294947000
- 14.5220000000 0.8993630000 0.0289977000
- 14.5640000000 0.8604840000 0.0273180000
- 14.6061000000 0.8489070000 0.0275784000
- 14.6485000000 0.8448680000 0.0278685000
- 14.6910000000 0.8120300000 0.0274250000
- 14.7337000000 0.7450320000 0.0257875000
- 14.7766000000 0.8075220000 0.0271608000
- 14.8197000000 0.7989320000 0.0272881000
- 14.8630000000 0.8203180000 0.0269409000
- 14.9064000000 0.8283440000 0.0271757000
- 14.9501000000 0.8844820000 0.0286687000
- 14.9939000000 0.8869280000 0.0289207000
- 15.0379000000 0.8289200000 0.0274290000
- 15.0822000000 0.7839120000 0.0263629000
- 15.1266000000 0.7497420000 0.0257578000
- 15.1712000000 0.7192810000 0.0253376000
- 15.2160000000 0.7744120000 0.0267699000
- 15.2611000000 0.7941980000 0.0274651000
- 15.3063000000 0.8753600000 0.0294064000
- 15.3517000000 0.8804690000 0.0292723000
- 15.3973000000 0.9382370000 0.0306834000
- 15.4431000000 0.9559900000 0.0305370000
- 15.4892000000 0.9845800000 0.0315587000
- 15.5354000000 0.9851430000 0.0315987000
- 15.5818000000 1.0120900000 0.0319819000
- 15.6285000000 0.9587760000 0.0309760000
- 15.6754000000 0.9593120000 0.0305056000
- 15.7224000000 0.9698270000 0.0309984000
- 15.7697000000 0.9999400000 0.0322280000
- 15.8172000000 0.9558110000 0.0307301000
- 15.8649000000 0.9614440000 0.0311331000
- 15.9129000000 0.9978250000 0.0323023000
- 15.9610000000 0.9826160000 0.0317561000
- 16.0094000000 0.9062300000 0.0293173000
- 16.0580000000 0.9552790000 0.0307919000
- 16.1068000000 0.9484610000 0.0305833000
- 16.1558000000 0.9800280000 0.0319650000
- 16.2051000000 0.9663410000 0.0317208000
- 16.2545000000 0.9954470000 0.0322548000
- 16.3043000000 0.9660880000 0.0317658000
- 16.3542000000 0.9612690000 0.0315732000
- 16.4044000000 0.9682140000 0.0321176000
- 16.4548000000 0.9232850000 0.0306990000
- 16.5054000000 0.9575560000 0.0319977000
- 16.5563000000 0.8873950000 0.0303738000
- 16.6074000000 0.9011820000 0.0307698000
- 16.6587000000 0.8944850000 0.0314397000
- 16.7103000000 0.8677790000 0.0308771000
- 16.7621000000 0.9653530000 0.0343104000
- 16.8141000000 0.9290550000 0.0322747000
- 16.8664000000 0.8610860000 0.0305270000
- 16.9190000000 0.9378030000 0.0331059000
- 16.9718000000 0.9389780000 0.0332439000
- 17.0248000000 1.0018000000 0.0352002000
- 17.0781000000 0.9604140000 0.0347914000
- 17.1316000000 0.9305460000 0.0341570000
- 17.1854000000 1.0124500000 0.0370375000
- 17.2395000000 0.9891940000 0.0367784000
- 17.2938000000 0.9859160000 0.0370976000
- 17.3483000000 0.9545490000 0.0371352000
- 17.4031000000 0.9453870000 0.0377938000
- 17.4582000000 0.9659150000 0.0392156000
- 17.5135000000 0.8774260000 0.0379402000
- 17.5691000000 0.8888350000 0.0383040000
- 17.6250000000 0.8772700000 0.0408384000
- 17.6811000000 0.8959180000 0.0427513000
- 17.7375000000 0.8587140000 0.0443820000
- 17.7942000000 0.7974850000 0.0440008000
- 17.8511000000 0.7636720000 0.0457381000
- 17.9084000000 0.7251570000 0.0476241000
- 17.9659000000 0.5339030000 0.0447687000
- 18.0236000000 0.5615310000 0.0522601000
- 18.0817000000 0.7410020000 0.0722189000
- 18.1400000000 0.7279510000 0.0838383000
- 18.1986000000 0.9338550000 0.1504070000
- 18.2575000000 0.9006340000 0.1797020000
- 18.3167000000 0.7659780000 0.3403370000
- 18.3762000000 1.2346900000 0.9627210000
- 18.4359000000 0.7940810000 1.6040800000
- 18.4960000000 0.2253680000 0.7327060000
- 18.5563000000 0.2802370000 0.8270040000
- 18.6170000000 -0.0376973000 1.2507100000
- 18.6779000000 -0.1472880000 1.0513400000
- 18.7391000000 0.1892810000 1.3806000000
- 18.8007000000 0.0871814000 1.5614900000
- 18.8625000000 0.4628990000 1.1457600000
- 18.9247000000 0.0520294000 0.5327860000
- 18.9871000000 -0.1385580000 0.3054710000
- 19.0499000000 0.3066950000 0.4873340000
- 19.1130000000 0.1931940000 0.2869540000
- 19.1764000000 0.5442030000 0.2189610000
- 19.2401000000 0.5858690000 0.1637390000
- 19.3041000000 0.5551390000 0.1281380000
- 19.3685000000 0.8754780000 0.1244300000
- 19.4331000000 0.7643320000 0.0894222000
- 19.4981000000 0.7866990000 0.0728718000
- 19.5634000000 0.8435950000 0.0656133000
- 19.6291000000 0.7701470000 0.0529936000
- 19.6951000000 0.8448640000 0.0510696000
- 19.7614000000 0.7237830000 0.0447334000
- 19.8280000000 0.6902750000 0.0410574000
- 19.8950000000 0.5336640000 0.0331582000
- 19.9624000000 0.4681350000 0.0295951000
- 20.0300000000 0.4238570000 0.0267210000
- 20.0980000000 0.5150580000 0.0283575000
- 20.1664000000 0.6583170000 0.0309344000
- 20.2351000000 0.7573550000 0.0333656000
- 20.3042000000 0.8875270000 0.0369698000
- 20.3736000000 0.9993450000 0.0399584000
- 20.4434000000 0.9083430000 0.0363385000
- 20.5135000000 0.9826400000 0.0391698000
- 20.5840000000 0.9824770000 0.0391220000
- 20.6548000000 0.8975180000 0.0379414000
- 20.7261000000 0.9544270000 0.0424749000
- 20.7977000000 0.9202970000 0.0465272000
- 20.8696000000 0.9874300000 0.0672021000
- 20.9420000000 0.9093600000 0.1032110000
- 21.0147000000 0.8132590000 0.1168700000
- 21.0878000000 0.9055290000 0.1076750000
- 21.1613000000 0.8549770000 0.0720198000
- 21.2351000000 0.9150730000 0.0553359000
- 21.3094000000 0.9331940000 0.0430041000
- 21.3840000000 0.9244990000 0.0368818000
- 21.4590000000 0.8684040000 0.0327771000
- 21.5345000000 0.8296120000 0.0304408000
- 21.6103000000 0.8586940000 0.0307526000
- 21.6865000000 0.8629630000 0.0305832000
- 21.7632000000 0.8833720000 0.0303244000
- 21.8402000000 0.8990950000 0.0307411000
- 21.9176000000 0.8904990000 0.0304141000
- 21.9955000000 0.8670150000 0.0294478000
- 22.0738000000 0.8190360000 0.0280037000
- 22.1525000000 0.7812660000 0.0273877000
- 22.2316000000 0.7526850000 0.0262739000
- 22.3111000000 0.8149440000 0.0278837000
- 22.3911000000 0.8533190000 0.0287027000
- 22.4715000000 0.7637770000 0.0264174000
- 22.5523000000 0.8074650000 0.0270473000
- 22.6336000000 0.8343270000 0.0277018000
- 22.7153000000 0.8560370000 0.0286019000
- 22.7975000000 0.8894310000 0.0286085000
- 22.8801000000 0.9358180000 0.0296754000
- 22.9631000000 0.9467260000 0.0300373000
- 23.0466000000 0.9616560000 0.0303665000
- 23.1306000000 0.9099640000 0.0288110000
- 23.2150000000 0.9486840000 0.0298812000
- 23.2999000000 0.9192640000 0.0291327000
- 23.3852000000 0.9259140000 0.0291504000
- 23.4711000000 0.9422160000 0.0297687000
- 23.5573000000 0.8256940000 0.0268846000
- 23.6441000000 0.8436200000 0.0273963000
- 23.7314000000 0.8832550000 0.0285120000
- 23.8191000000 0.8832790000 0.0278674000
- 23.9073000000 0.9562070000 0.0299431000
- 23.9960000000 0.9349730000 0.0289875000
- 24.0852000000 0.8444520000 0.0270897000
- 24.1749000000 0.8913070000 0.0281125000
- 24.2651000000 0.8906300000 0.0281822000
- 24.3559000000 0.8555870000 0.0276524000
- 24.4471000000 0.8725850000 0.0283605000
- 24.5388000000 0.7525190000 0.0257158000
- 24.6311000000 0.7776690000 0.0257289000
- 24.7238000000 0.8463770000 0.0270327000
- 24.8171000000 0.8756070000 0.0277428000
- 24.9110000000 0.9588920000 0.0293980000
- 25.0053000000 0.9657220000 0.0295672000
- 25.1002000000 0.9439960000 0.0290475000
- 25.1957000000 0.9087560000 0.0282124000
- 25.2916000000 0.9580680000 0.0299151000
- 25.3882000000 0.9365040000 0.0294849000
- 25.4853000000 0.9585150000 0.0294639000
- 25.5829000000 0.9657720000 0.0297029000
- 25.6811000000 0.9395880000 0.0291743000
- 25.7799000000 0.9541580000 0.0292622000
- 25.8792000000 0.9485630000 0.0293420000
- 25.9792000000 0.9875910000 0.0303118000
- 26.0797000000 0.9571500000 0.0297973000
- 26.1807000000 0.9047160000 0.0285135000
- 26.2824000000 0.9364590000 0.0295582000
- 26.3847000000 0.8753380000 0.0284619000
- 26.4876000000 0.8179390000 0.0277574000
- 26.5910000000 0.7195360000 0.0260743000
- 26.6951000000 0.6805780000 0.0267298000
- 26.7998000000 0.7113360000 0.0313208000
- 26.9051000000 0.8890370000 0.0454545000
- 27.0110000000 0.9588390000 0.0528428000
- 27.1176000000 1.0704100000 0.0490603000
- 27.2248000000 0.9882660000 0.0362184000
- 27.3326000000 0.9577500000 0.0312730000
- 27.4410000000 0.9876770000 0.0312963000
- 27.5502000000 0.9947150000 0.0308071000
- 27.6599000000 0.9360990000 0.0284115000
- 27.7703000000 0.9986620000 0.0307324000
- 27.8814000000 0.9757830000 0.0294059000
- 27.9932000000 0.9641810000 0.0295117000
- 28.1056000000 0.9858600000 0.0301198000
- 28.2187000000 0.9589610000 0.0291927000
- 28.3325000000 0.9802880000 0.0293570000
- 28.4470000000 0.9397350000 0.0287737000
- 28.5621000000 0.8862370000 0.0277541000
- 28.6780000000 0.8905800000 0.0280938000
- 28.7946000000 0.8767000000 0.0273413000
- 28.9119000000 0.9268360000 0.0287576000
- 29.0299000000 0.8556840000 0.0271895000
- 29.1486000000 0.9137910000 0.0285498000
- 29.2681000000 0.8319910000 0.0262487000
- 29.3883000000 0.8799540000 0.0276573000
- 29.5092000000 0.9173570000 0.0285350000
- 29.6309000000 0.9672390000 0.0292756000
- 29.7533000000 0.9266570000 0.0283722000
- 29.8766000000 0.9528170000 0.0288518000
diff --git a/examples/data/u235-u238.twenty b/examples/data/u235-u238.twenty
deleted file mode 100644
index b9cec7c..0000000
--- a/examples/data/u235-u238.twenty
+++ /dev/null
@@ -1,5000 +0,0 @@
- 1.0 0.8986456911 0.05
- 1.0198039608 0.8932659809 0.05
- 1.0396079216 0.8862739083 0.05
- 1.0594118824 0.8774798525 0.05
- 1.0792158432 0.8671346826 0.05
- 1.099019804 0.8561987923 0.05
- 1.1188237648 0.8473398256 0.05
- 1.1386277255 0.8449164117 0.05
- 1.1584316863 0.8517653042 0.05
- 1.1782356471 0.8669889567 0.05
- 1.1980396079 0.885829224 0.05
- 1.2178435687 0.9035751107 0.05
- 1.2376475295 0.917719668 0.05
- 1.2574514903 0.9278700911 0.05
- 1.2772554511 0.934326443 0.05
- 1.2970594119 0.9378253707 0.05
- 1.3168633727 0.9400169878 0.05
- 1.3366673335 0.9423163001 0.05
- 1.3564712943 0.9447098837 0.05
- 1.3762752551 0.9467669539 0.05
- 1.3960792158 0.9483655877 0.05
- 1.4158831766 0.9495913713 0.05
- 1.4356871374 0.9505492986 0.05
- 1.4554910982 0.9513250539 0.05
- 1.475295059 0.9519568973 0.05
- 1.4950990198 0.9524812761 0.05
- 1.5149029806 0.9529446962 0.05
- 1.5347069414 0.9533257242 0.05
- 1.5545109022 0.9536610248 0.05
- 1.574314863 0.9539525929 0.05
- 1.5941188238 0.9542203224 0.05
- 1.6139227846 0.9544479375 0.05
- 1.6337267453 0.9546622644 0.05
- 1.6535307061 0.9548524223 0.05
- 1.6733346669 0.9550059647 0.05
- 1.6931386277 0.9551467228 0.05
- 1.7129425885 0.9552743552 0.05
- 1.7327465493 0.9553685025 0.05
- 1.7525505101 0.9554442264 0.05
- 1.7723544709 0.9554914961 0.05
- 1.7921584317 0.9554905442 0.05
- 1.8119623925 0.9554479198 0.05
- 1.8317663533 0.9553461702 0.05
- 1.8515703141 0.9551455423 0.05
- 1.8713742749 0.9548212061 0.05
- 1.8911782356 0.9542923374 0.05
- 1.9109821964 0.9534096884 0.05
- 1.9307861572 0.9518678462 0.05
- 1.950590118 0.9489597782 0.05
- 1.9703940788 0.9429015267 0.05
- 1.9901980396 0.9304906395 0.05
- 2.0100020004 0.9109299547 0.05
- 2.0298059612 0.8949697521 0.05
- 2.049609922 0.898130712 0.05
- 2.0694138828 0.9168759733 0.05
- 2.0892178436 0.9349749151 0.05
- 2.1090218044 0.9454387721 0.05
- 2.1288257652 0.9505559155 0.05
- 2.1486297259 0.9531754653 0.05
- 2.1684336867 0.9546731626 0.05
- 2.1882376475 0.9555994087 0.05
- 2.2080416083 0.9562379583 0.05
- 2.2278455691 0.9566842833 0.05
- 2.2476495299 0.9570080616 0.05
- 2.2674534907 0.9572665119 0.05
- 2.2872574515 0.957469942 0.05
- 2.3070614123 0.9576254286 0.05
- 2.3268653731 0.9577490735 0.05
- 2.3466693339 0.957855363 0.05
- 2.3664732947 0.9579497142 0.05
- 2.3862772555 0.9580286402 0.05
- 2.4060812162 0.958091968 0.05
- 2.425885177 0.9581457493 0.05
- 2.4456891378 0.9581928886 0.05
- 2.4654930986 0.9582281399 0.05
- 2.4852970594 0.9582676418 0.05
- 2.5051010202 0.9582979021 0.05
- 2.524904981 0.9583416437 0.05
- 2.5447089418 0.9583805662 0.05
- 2.5645129026 0.9584289404 0.05
- 2.5843168634 0.9584962995 0.05
- 2.6041208242 0.958562635 0.05
- 2.623924785 0.9586321905 0.05
- 2.6437287457 0.9587044872 0.05
- 2.6635327065 0.9587205886 0.05
- 2.6833366673 0.9586399913 0.05
- 2.7031406281 0.9583148148 0.05
- 2.7229445889 0.9575540709 0.05
- 2.7427485497 0.9562270666 0.05
- 2.7625525105 0.9543543707 0.05
- 2.7823564713 0.9522173254 0.05
- 2.8021604321 0.9502412346 0.05
- 2.8219643929 0.9486313086 0.05
- 2.8417683537 0.9474560563 0.05
- 2.8615723145 0.9465395581 0.05
- 2.8813762753 0.9457402723 0.05
- 2.901180236 0.9448606263 0.05
- 2.9209841968 0.9438671273 0.05
- 2.9407881576 0.9426412741 0.05
- 2.9605921184 0.9411240716 0.05
- 2.9803960792 0.9391711635 0.05
- 3.00020004 0.9366675361 0.05
- 3.0200040008 0.9334393336 0.05
- 3.0398079616 0.9292324737 0.05
- 3.0596119224 0.9237898153 0.05
- 3.0794158832 0.9170632085 0.05
- 3.099219844 0.9094444138 0.05
- 3.1190238048 0.9022051879 0.05
- 3.1388277656 0.8973877502 0.05
- 3.1586317263 0.8968308736 0.05
- 3.1784356871 0.9008803857 0.05
- 3.1982396479 0.9079569117 0.05
- 3.2180436087 0.9156660677 0.05
- 3.2378475695 0.9223735462 0.05
- 3.2576515303 0.927276217 0.05
- 3.2774554911 0.930458772 0.05
- 3.2972594519 0.9322354022 0.05
- 3.3170634127 0.9329744396 0.05
- 3.3368673735 0.9328854707 0.05
- 3.3566713343 0.9321259135 0.05
- 3.3764752951 0.9308006859 0.05
- 3.3962792559 0.9288479332 0.05
- 3.4160832166 0.9262649192 0.05
- 3.4358871774 0.9228604068 0.05
- 3.4556911382 0.9183854774 0.05
- 3.475495099 0.9124152239 0.05
- 3.4952990598 0.9041839461 0.05
- 3.5151030206 0.892533031 0.05
- 3.5349069814 0.8758792021 0.05
- 3.5547109422 0.8533152059 0.05
- 3.574514903 0.8273043048 0.05
- 3.5943188638 0.8050612632 0.05
- 3.6141228246 0.7963821546 0.05
- 3.6339267854 0.8058058634 0.05
- 3.6537307461 0.8280781133 0.05
- 3.6735347069 0.8528738054 0.05
- 3.6933386677 0.8721381271 0.05
- 3.7131426285 0.8837293933 0.05
- 3.7329465893 0.8891075561 0.05
- 3.7527505501 0.890335663 0.05
- 3.7725545109 0.8888457945 0.05
- 3.7923584717 0.8853702026 0.05
- 3.8121624325 0.8802312522 0.05
- 3.8319663933 0.8737416509 0.05
- 3.8517703541 0.8657404076 0.05
- 3.8715743149 0.8564012404 0.05
- 3.8913782757 0.8452697307 0.05
- 3.9111822364 0.8324088645 0.05
- 3.9309861972 0.8172499925 0.05
- 3.950790158 0.7993978429 0.05
- 3.9705941188 0.7782273104 0.05
- 3.9903980796 0.7529974709 0.05
- 4.0102020404 0.7229540504 0.05
- 4.0300060012 0.6864619347 0.05
- 4.049809962 0.642021852 0.05
- 4.0696139228 0.587421453 0.05
- 4.0894178836 0.5201923354 0.05
- 4.1092218444 0.4371729552 0.05
- 4.1290258052 0.3362777332 0.05
- 4.148829766 0.2202391254 0.05
- 4.1686337267 0.1058008282 0.05
- 4.1884376875 0.0288276614 0.05
- 4.2082416483 0.0032162173 0.05
- 4.2280456091 0.0001334506 0.05
- 4.2478495699 3.7425e-06 0.05
- 4.2676535307 2.777e-07 0.05
- 4.2874574915 2.054e-07 0.05
- 4.3072614523 1.798e-06 0.05
- 4.3270654131 5.70763e-05 0.05
- 4.3468693739 0.0015945174 0.05
- 4.3666733347 0.0177820208 0.05
- 4.3864772955 0.078265616 0.05
- 4.4062812563 0.1823927464 0.05
- 4.426085217 0.2972924098 0.05
- 4.4458891778 0.4006280633 0.05
- 4.4656931386 0.4871744177 0.05
- 4.4854970994 0.557873104 0.05
- 4.5053010602 0.6152473918 0.05
- 4.525105021 0.6621793165 0.05
- 4.5449089818 0.7006663506 0.05
- 4.5647129426 0.7325646409 0.05
- 4.5845169034 0.7591749476 0.05
- 4.6043208642 0.781383428 0.05
- 4.624124825 0.8000834244 0.05
- 4.6439287858 0.8159671409 0.05
- 4.6637327465 0.8291723015 0.05
- 4.6835367073 0.8402072682 0.05
- 4.7033406681 0.8489314144 0.05
- 4.7231446289 0.8549801378 0.05
- 4.7429485897 0.8571412364 0.05
- 4.7627525505 0.8524384224 0.05
- 4.7825565113 0.8363618165 0.05
- 4.8023604721 0.8066657324 0.05
- 4.8221644329 0.771055936 0.05
- 4.8419683937 0.7478849129 0.05
- 4.8617723545 0.7530491116 0.05
- 4.8815763153 0.7858753598 0.05
- 4.9013802761 0.8300389081 0.05
- 4.9211842368 0.8679498205 0.05
- 4.9409881976 0.8927636734 0.05
- 4.9607921584 0.9070885427 0.05
- 4.9805961192 0.9154311775 0.05
- 5.00040008 0.920876959 0.05
- 5.0202040408 0.9248235296 0.05
- 5.0400080016 0.9279145806 0.05
- 5.0598119624 0.9303990445 0.05
- 5.0796159232 0.9325052278 0.05
- 5.099419884 0.9342750618 0.05
- 5.1192238448 0.9358061224 0.05
- 5.1390278056 0.9371015431 0.05
- 5.1588317664 0.9381975302 0.05
- 5.1786357271 0.9391353966 0.05
- 5.1984396879 0.9398992799 0.05
- 5.2182436487 0.9404792593 0.05
- 5.2380476095 0.940923595 0.05
- 5.2578515703 0.9412227503 0.05
- 5.2776555311 0.9413694569 0.05
- 5.2974594919 0.9413687724 0.05
- 5.3172634527 0.9412108282 0.05
- 5.3370674135 0.940875507 0.05
- 5.3568713743 0.9402579593 0.05
- 5.3766753351 0.9392564719 0.05
- 5.3964792959 0.9376611999 0.05
- 5.4162832567 0.9354069015 0.05
- 5.4360872174 0.9329420911 0.05
- 5.4558911782 0.9312214654 0.05
- 5.475695139 0.9312423851 0.05
- 5.4954990998 0.9330849013 0.05
- 5.5153030606 0.9358776712 0.05
- 5.5351070214 0.9386275344 0.05
- 5.5549109822 0.9407604253 0.05
- 5.574714943 0.9422540204 0.05
- 5.5945189038 0.9433282148 0.05
- 5.6143228646 0.9441908403 0.05
- 5.6341268254 0.9449211353 0.05
- 5.6539307862 0.9455749796 0.05
- 5.6737347469 0.9461589392 0.05
- 5.6935387077 0.9466926141 0.05
- 5.7133426685 0.9471458818 0.05
- 5.7331466293 0.9475345246 0.05
- 5.7529505901 0.9478561229 0.05
- 5.7727545509 0.948096959 0.05
- 5.7925585117 0.9482500492 0.05
- 5.8123624725 0.9482940933 0.05
- 5.8321664333 0.9482361186 0.05
- 5.8519703941 0.948067162 0.05
- 5.8717743549 0.9477687556 0.05
- 5.8915783157 0.9473151563 0.05
- 5.9113822765 0.946707139 0.05
- 5.9311862372 0.9458961598 0.05
- 5.950990198 0.9448322829 0.05
- 5.9707941588 0.9435038337 0.05
- 5.9905981196 0.9418350313 0.05
- 6.0104020804 0.9397832451 0.05
- 6.0302060412 0.9372393076 0.05
- 6.050010002 0.9341592077 0.05
- 6.0698139628 0.9304547216 0.05
- 6.0896179236 0.9261165889 0.05
- 6.1094218844 0.9211582825 0.05
- 6.1292258452 0.9157631384 0.05
- 6.149029806 0.910087589 0.05
- 6.1688337668 0.9044990622 0.05
- 6.1886377275 0.8992351373 0.05
- 6.2084416883 0.8941801495 0.05
- 6.2282456491 0.8888937111 0.05
- 6.2480496099 0.881587116 0.05
- 6.2678535707 0.8690153803 0.05
- 6.2876575315 0.8452937367 0.05
- 6.3074614923 0.8024798994 0.05
- 6.3272654531 0.7364037266 0.05
- 6.3470694139 0.6558538909 0.05
- 6.3668733747 0.584433612 0.05
- 6.3866773355 0.5472836959 0.05
- 6.4064812963 0.5574973364 0.05
- 6.4262852571 0.6114144777 0.05
- 6.4460892178 0.6893334786 0.05
- 6.4658931786 0.764402775 0.05
- 6.4856971394 0.8165121031 0.05
- 6.5055011002 0.8407374074 0.05
- 6.525305061 0.8389195927 0.05
- 6.5451090218 0.8063703012 0.05
- 6.5649129826 0.7218381162 0.05
- 6.5847169434 0.5558485782 0.05
- 6.6045209042 0.3282289014 0.05
- 6.624324865 0.1411788592 0.05
- 6.6441288258 0.0528051779 0.05
- 6.6639327866 0.0261960583 0.05
- 6.6837367473 0.0257243242 0.05
- 6.7035407081 0.0503476598 0.05
- 6.7233446689 0.1332051809 0.05
- 6.7431486297 0.3114922052 0.05
- 6.7629525905 0.5368352972 0.05
- 6.7827565513 0.7108906153 0.05
- 6.8025605121 0.8084014667 0.05
- 6.8223644729 0.8577696092 0.05
- 6.8421684337 0.8840851814 0.05
- 6.8619723945 0.8995864876 0.05
- 6.8817763553 0.9092126224 0.05
- 6.9015803161 0.9149467506 0.05
- 6.9213842769 0.9173836437 0.05
- 6.9411882376 0.9163996624 0.05
- 6.9609921984 0.9109140968 0.05
- 6.9807961592 0.8991081596 0.05
- 7.00060012 0.878890821 0.05
- 7.0204040808 0.8501560985 0.05
- 7.0402080416 0.8173523833 0.05
- 7.0600120024 0.7893492057 0.05
- 7.0798159632 0.7762753079 0.05
- 7.099619924 0.7837711299 0.05
- 7.1194238848 0.8094375316 0.05
- 7.1392278456 0.8444539787 0.05
- 7.1590318064 0.8790056183 0.05
- 7.1788357672 0.9063840851 0.05
- 7.1986397279 0.9251774703 0.05
- 7.2184436887 0.9371546449 0.05
- 7.2382476495 0.9446764717 0.05
- 7.2580516103 0.9495514826 0.05
- 7.2778555711 0.9528746541 0.05
- 7.2976595319 0.9552776661 0.05
- 7.3174634927 0.9570754795 0.05
- 7.3372674535 0.9584602721 0.05
- 7.3570714143 0.959573766 0.05
- 7.3768753751 0.9604735611 0.05
- 7.3966793359 0.9612108156 0.05
- 7.4164832967 0.9618281469 0.05
- 7.4362872575 0.9623416515 0.05
- 7.4560912182 0.9627798748 0.05
- 7.475895179 0.9631511941 0.05
- 7.4956991398 0.9634643876 0.05
- 7.5155031006 0.9637362972 0.05
- 7.5353070614 0.9639814728 0.05
- 7.5551110222 0.9642236538 0.05
- 7.574914983 0.9644775587 0.05
- 7.5947189438 0.9647490135 0.05
- 7.6145229046 0.9650648802 0.05
- 7.6343268654 0.9654329086 0.05
- 7.6541308262 0.9658365462 0.05
- 7.673934787 0.9662627778 0.05
- 7.6937387477 0.9666852651 0.05
- 7.7135427085 0.9670646443 0.05
- 7.7333466693 0.9673831267 0.05
- 7.7531506301 0.9676287951 0.05
- 7.7729545909 0.9677960693 0.05
- 7.7927585517 0.9678896605 0.05
- 7.8125625125 0.9679238633 0.05
- 7.8323664733 0.9679077767 0.05
- 7.8521704341 0.9678518583 0.05
- 7.8719743949 0.9677667456 0.05
- 7.8917783557 0.9676466061 0.05
- 7.9115823165 0.9675068421 0.05
- 7.9313862773 0.9673384916 0.05
- 7.951190238 0.9671440109 0.05
- 7.9709941988 0.96691375 0.05
- 7.9907981596 0.9666533324 0.05
- 8.0106021204 0.9663625001 0.05
- 8.0304060812 0.9660351517 0.05
- 8.050210042 0.9656687652 0.05
- 8.0700140028 0.9652660019 0.05
- 8.0898179636 0.9648118877 0.05
- 8.1096219244 0.9643005482 0.05
- 8.1294258852 0.9637226672 0.05
- 8.149229846 0.963075199 0.05
- 8.1690338068 0.9623599547 0.05
- 8.1888377676 0.9615534773 0.05
- 8.2086417283 0.9606455456 0.05
- 8.2284456891 0.9596200047 0.05
- 8.2482496499 0.9584721783 0.05
- 8.2680536107 0.9571652898 0.05
- 8.2878575715 0.9556810835 0.05
- 8.3076615323 0.9539806932 0.05
- 8.3274654931 0.9520465772 0.05
- 8.3472694539 0.9498128475 0.05
- 8.3670734147 0.947244928 0.05
- 8.3868773755 0.9442400905 0.05
- 8.4066813363 0.9407391892 0.05
- 8.4264852971 0.9366048952 0.05
- 8.4462892579 0.9317021289 0.05
- 8.4660932186 0.9258007444 0.05
- 8.4858971794 0.918633974 0.05
- 8.5057011402 0.9098852499 0.05
- 8.525505101 0.8989372028 0.05
- 8.5453090618 0.8851289171 0.05
- 8.5651130226 0.8673531315 0.05
- 8.5849169834 0.8440735315 0.05
- 8.6047209442 0.8132606483 0.05
- 8.624524905 0.7723844336 0.05
- 8.6443288658 0.7190967476 0.05
- 8.6641328266 0.6527061681 0.05
- 8.6839367874 0.5765187231 0.05
- 8.7037407481 0.4983519813 0.05
- 8.7235447089 0.429300599 0.05
- 8.7433486697 0.3783471586 0.05
- 8.7631526305 0.3516846968 0.05
- 8.7829565913 0.3511389121 0.05
- 8.8027605521 0.3759780498 0.05
- 8.8225645129 0.4229284757 0.05
- 8.8423684737 0.4850873049 0.05
- 8.8621724345 0.5537578901 0.05
- 8.8819763953 0.6197901739 0.05
- 8.9017803561 0.6768641823 0.05
- 8.9215843169 0.7230612296 0.05
- 8.9413882777 0.7591704299 0.05
- 8.9611922384 0.7871724265 0.05
- 8.9809961992 0.8092716308 0.05
- 9.00080016 0.8267163867 0.05
- 9.0206041208 0.8408229747 0.05
- 9.0404080816 0.8522875833 0.05
- 9.0602120424 0.8615537045 0.05
- 9.0800160032 0.8689263205 0.05
- 9.099819964 0.8744454723 0.05
- 9.1196239248 0.8780179733 0.05
- 9.1394278856 0.8791596961 0.05
- 9.1592318464 0.8772495972 0.05
- 9.1790358072 0.8717292983 0.05
- 9.198839768 0.8621040852 0.05
- 9.2186437287 0.8490755415 0.05
- 9.2384476895 0.835048283 0.05
- 9.2582516503 0.8230092067 0.05
- 9.2780556111 0.8167552363 0.05
- 9.2978595719 0.8185609701 0.05
- 9.3176635327 0.8283501365 0.05
- 9.3374674935 0.8436625263 0.05
- 9.3572714543 0.8611439107 0.05
- 9.3770754151 0.8777706429 0.05
- 9.3968793759 0.8916896651 0.05
- 9.4166833367 0.9023148997 0.05
- 9.4364872975 0.9101433785 0.05
- 9.4562912583 0.9157236776 0.05
- 9.476095219 0.9197164732 0.05
- 9.4958991798 0.9226049049 0.05
- 9.5157031406 0.9246317609 0.05
- 9.5355071014 0.926005225 0.05
- 9.5553110622 0.9268512541 0.05
- 9.575115023 0.9272515413 0.05
- 9.5949189838 0.9272642954 0.05
- 9.6147229446 0.9268627715 0.05
- 9.6345269054 0.9261142381 0.05
- 9.6543308662 0.9250794939 0.05
- 9.674134827 0.9238876896 0.05
- 9.6939387878 0.9226133335 0.05
- 9.7137427485 0.9214447233 0.05
- 9.7335467093 0.9205218959 0.05
- 9.7533506701 0.9199071102 0.05
- 9.7731546309 0.9196598564 0.05
- 9.7929585917 0.919648266 0.05
- 9.8127625525 0.9196883646 0.05
- 9.8325665133 0.9195905119 0.05
- 9.8523704741 0.9191955175 0.05
- 9.8721744349 0.9182504988 0.05
- 9.8919783957 0.9165955235 0.05
- 9.9117823565 0.9141595787 0.05
- 9.9315863173 0.9108445736 0.05
- 9.9513902781 0.9064395821 0.05
- 9.9711942388 0.9007759475 0.05
- 9.9909981996 0.8935540507 0.05
- 10.0108021604 0.8843027058 0.05
- 10.0306061212 0.8724641452 0.05
- 10.050410082 0.8569098044 0.05
- 10.0702140428 0.8367060586 0.05
- 10.0900180036 0.8105693606 0.05
- 10.1098219644 0.7766156415 0.05
- 10.1296259252 0.7329940345 0.05
- 10.149429886 0.676245491 0.05
- 10.1692338468 0.600695116 0.05
- 10.1890378076 0.5017470842 0.05
- 10.2088417684 0.3799893563 0.05
- 10.2286457291 0.251725482 0.05
- 10.2484496899 0.1425069904 0.05
- 10.2682536507 0.0702442323 0.05
- 10.2880576115 0.0330648474 0.05
- 10.3078615723 0.017016109 0.05
- 10.3276655331 0.0112599802 0.05
- 10.3474694939 0.0107248544 0.05
- 10.3672734547 0.0149271128 0.05
- 10.3870774155 0.0276567237 0.05
- 10.4068813763 0.0581245748 0.05
- 10.4266853371 0.1204358739 0.05
- 10.4464892979 0.2216804291 0.05
- 10.4662932587 0.3498063072 0.05
- 10.4860972194 0.4791618919 0.05
- 10.5059011802 0.5884336027 0.05
- 10.525705141 0.6710698926 0.05
- 10.5455091018 0.7304794646 0.05
- 10.5653130626 0.7734554528 0.05
- 10.5851170234 0.8049925152 0.05
- 10.6049209842 0.828810568 0.05
- 10.624724945 0.8473062154 0.05
- 10.6445289058 0.8620495739 0.05
- 10.6643328666 0.8739248037 0.05
- 10.6841368274 0.8836391553 0.05
- 10.7039407882 0.8917149146 0.05
- 10.7237447489 0.8983976283 0.05
- 10.7435487097 0.9040769234 0.05
- 10.7633526705 0.9089693279 0.05
- 10.7831566313 0.9132637464 0.05
- 10.8029605921 0.9170947189 0.05
- 10.8227645529 0.9205800758 0.05
- 10.8425685137 0.9237572542 0.05
- 10.8623724745 0.9266645818 0.05
- 10.8821764353 0.9292750151 0.05
- 10.9019803961 0.9316499717 0.05
- 10.9217843569 0.9337768174 0.05
- 10.9415883177 0.9356971109 0.05
- 10.9613922785 0.9374100577 0.05
- 10.9811962392 0.9389482125 0.05
- 11.0010002 0.940310235 0.05
- 11.0208041608 0.9415389876 0.05
- 11.0406081216 0.9426312461 0.05
- 11.0604120824 0.9435983467 0.05
- 11.0802160432 0.9444766521 0.05
- 11.100020004 0.9452422821 0.05
- 11.1198239648 0.945920205 0.05
- 11.1396279256 0.9465083931 0.05
- 11.1594318864 0.9469895932 0.05
- 11.1792358472 0.9473964702 0.05
- 11.199039808 0.9476911775 0.05
- 11.2188437688 0.9478756612 0.05
- 11.2386477295 0.9479395311 0.05
- 11.2584516903 0.9478835509 0.05
- 11.2782556511 0.9477030559 0.05
- 11.2980596119 0.9474252363 0.05
- 11.3178635727 0.947055879 0.05
- 11.3376675335 0.9465576974 0.05
- 11.3574714943 0.9458692777 0.05
- 11.3772754551 0.94491041 0.05
- 11.3970794159 0.9435453969 0.05
- 11.4168833767 0.9416234477 0.05
- 11.4366873375 0.9388889092 0.05
- 11.4564912983 0.9348612312 0.05
- 11.4762952591 0.9287273328 0.05
- 11.4960992198 0.9188916461 0.05
- 11.5159031806 0.9026916804 0.05
- 11.5357071414 0.8764328803 0.05
- 11.5555111022 0.8358285741 0.05
- 11.575315063 0.7798551268 0.05
- 11.5951190238 0.7126875678 0.05
- 11.6149229846 0.6462162288 0.05
- 11.6347269454 0.5937074353 0.05
- 11.6545309062 0.5665949962 0.05
- 11.674334867 0.5704546444 0.05
- 11.6941388278 0.6045258324 0.05
- 11.7139427886 0.6618515028 0.05
- 11.7337467493 0.7304191101 0.05
- 11.7535507101 0.796178316 0.05
- 11.7733546709 0.8492050045 0.05
- 11.7931586317 0.8864134366 0.05
- 11.8129625925 0.9097725964 0.05
- 11.8327665533 0.9237313138 0.05
- 11.8525705141 0.9318675847 0.05
- 11.8723744749 0.9367006751 0.05
- 11.8921784357 0.9395587651 0.05
- 11.9119823965 0.9412432018 0.05
- 11.9317863573 0.9421068794 0.05
- 11.9515903181 0.94238024 0.05
- 11.9713942789 0.9421450176 0.05
- 11.9911982396 0.9414345152 0.05
- 12.0110022004 0.9402927292 0.05
- 12.0308061612 0.9387092135 0.05
- 12.050610122 0.9365784999 0.05
- 12.0704140828 0.9338328759 0.05
- 12.0902180436 0.9302917539 0.05
- 12.1100220044 0.9258031332 0.05
- 12.1298259652 0.9199623395 0.05
- 12.149629926 0.9123251904 0.05
- 12.1694338868 0.901959432 0.05
- 12.1892378476 0.8875853323 0.05
- 12.2090418084 0.8670245601 0.05
- 12.2288457692 0.8371674047 0.05
- 12.2486497299 0.7943137588 0.05
- 12.2684536907 0.7353972769 0.05
- 12.2882576515 0.6610557959 0.05
- 12.3080616123 0.5773395837 0.05
- 12.3278655731 0.4962674285 0.05
- 12.3476695339 0.4293937759 0.05
- 12.3674734947 0.3865455598 0.05
- 12.3872774555 0.3723940663 0.05
- 12.4070814163 0.3878233778 0.05
- 12.4268853771 0.4315107278 0.05
- 12.4466893379 0.4994015301 0.05
- 12.4664932987 0.5819370098 0.05
- 12.4862972595 0.667095657 0.05
- 12.5061012202 0.7430054808 0.05
- 12.525905181 0.8031932336 0.05
- 12.5457091418 0.8467386468 0.05
- 12.5655131026 0.8769943783 0.05
- 12.5853170634 0.8975740475 0.05
- 12.6051210242 0.9116625998 0.05
- 12.624924985 0.9214309205 0.05
- 12.6447289458 0.9282123555 0.05
- 12.6645329066 0.9328861203 0.05
- 12.6843368674 0.9358769034 0.05
- 12.7041408282 0.9374157372 0.05
- 12.723944789 0.9377153099 0.05
- 12.7437487497 0.9368698287 0.05
- 12.7635527105 0.9350937111 0.05
- 12.7833566713 0.9327329666 0.05
- 12.8031606321 0.9302636181 0.05
- 12.8229645929 0.9282421571 0.05
- 12.8427685537 0.9272855664 0.05
- 12.8625725145 0.9277256055 0.05
- 12.8823764753 0.929663785 0.05
- 12.9021804361 0.9328278102 0.05
- 12.9219843969 0.9367618307 0.05
- 12.9417883577 0.9408915552 0.05
- 12.9615923185 0.9447732662 0.05
- 12.9813962793 0.9481078242 0.05
- 13.00120024 0.9507183428 0.05
- 13.0210042008 0.9526015229 0.05
- 13.0408081616 0.9538112087 0.05
- 13.0606121224 0.9544293231 0.05
- 13.0804160832 0.9544951499 0.05
- 13.100220044 0.9540563852 0.05
- 13.1200240048 0.953140812 0.05
- 13.1398279656 0.9517843001 0.05
- 13.1596319264 0.9500236693 0.05
- 13.1794358872 0.9479435344 0.05
- 13.199239848 0.9457362308 0.05
- 13.2190438088 0.9435309439 0.05
- 13.2388477696 0.9416036666 0.05
- 13.2586517303 0.9401891132 0.05
- 13.2784556911 0.9394725634 0.05
- 13.2982596519 0.9394982647 0.05
- 13.3180636127 0.9401932287 0.05
- 13.3378675735 0.9413454413 0.05
- 13.3576715343 0.9427570986 0.05
- 13.3774754951 0.9441440879 0.05
- 13.3972794559 0.9452674576 0.05
- 13.4170834167 0.9459776048 0.05
- 13.4368873775 0.9461151722 0.05
- 13.4566913383 0.9456137331 0.05
- 13.4764952991 0.9444408546 0.05
- 13.4962992599 0.9425689058 0.05
- 13.5161032206 0.939957492 0.05
- 13.5359071814 0.9366210077 0.05
- 13.5557111422 0.9325707307 0.05
- 13.575515103 0.927832259 0.05
- 13.5953190638 0.9225176689 0.05
- 13.6151230246 0.9166513803 0.05
- 13.6349269854 0.9104188944 0.05
- 13.6547309462 0.9037300742 0.05
- 13.674534907 0.8965535445 0.05
- 13.6943388678 0.8886319381 0.05
- 13.7141428286 0.8793088866 0.05
- 13.7339467894 0.8674488983 0.05
- 13.7537507502 0.8511461535 0.05
- 13.7735547109 0.8275307724 0.05
- 13.7933586717 0.7934095339 0.05
- 13.8131626325 0.7457624078 0.05
- 13.8329665933 0.6838921252 0.05
- 13.8527705541 0.6113916545 0.05
- 13.8725745149 0.5356072306 0.05
- 13.8923784757 0.4663757179 0.05
- 13.9121824365 0.4123924968 0.05
- 13.9319863973 0.3787370584 0.05
- 13.9517903581 0.3681276287 0.05
- 13.9715943189 0.3806175721 0.05
- 13.9913982797 0.4156849485 0.05
- 14.0112022404 0.4698150692 0.05
- 14.0310062012 0.5376129701 0.05
- 14.050810162 0.6108230483 0.05
- 14.0706141228 0.6801896654 0.05
- 14.0904180836 0.7394255109 0.05
- 14.1102220444 0.7855029449 0.05
- 14.1300260052 0.8195291741 0.05
- 14.149829966 0.8439483489 0.05
- 14.1696339268 0.8616139533 0.05
- 14.1894378876 0.8747793017 0.05
- 14.2092418484 0.8849031313 0.05
- 14.2290458092 0.8930050769 0.05
- 14.24884977 0.8996084147 0.05
- 14.2686537307 0.9050655466 0.05
- 14.2884576915 0.9096349962 0.05
- 14.3082616523 0.9133560126 0.05
- 14.3280656131 0.9163083915 0.05
- 14.3478695739 0.9184183933 0.05
- 14.3676735347 0.9196578047 0.05
- 14.3874774955 0.9198201718 0.05
- 14.4072814563 0.9185648465 0.05
- 14.4270854171 0.9156054446 0.05
- 14.4468893779 0.9108821506 0.05
- 14.4666933387 0.904640009 0.05
- 14.4864972995 0.8977220825 0.05
- 14.5063012603 0.891608855 0.05
- 14.526105221 0.8880703637 0.05
- 14.5459091818 0.88849528 0.05
- 14.5657131426 0.8934979666 0.05
- 14.5855171034 0.9022968179 0.05
- 14.6053210642 0.9134993882 0.05
- 14.625125025 0.9250767914 0.05
- 14.6449289858 0.9355469455 0.05
- 14.6647329466 0.9438721335 0.05
- 14.6845369074 0.9499329227 0.05
- 14.7043408682 0.9540984038 0.05
- 14.724144829 0.9568594232 0.05
- 14.7439487898 0.9586967397 0.05
- 14.7637527506 0.9599605167 0.05
- 14.7835567113 0.9608829847 0.05
- 14.8033606721 0.9615975351 0.05
- 14.8231646329 0.9621672579 0.05
- 14.8429685937 0.9626389245 0.05
- 14.8627725545 0.9630270763 0.05
- 14.8825765153 0.9633332541 0.05
- 14.9023804761 0.963575227 0.05
- 14.9221844369 0.9637500485 0.05
- 14.9419883977 0.9638703113 0.05
- 14.9617923585 0.9639328896 0.05
- 14.9815963193 0.9639441107 0.05
- 15.0014002801 0.963891497 0.05
- 15.0212042408 0.9637916188 0.05
- 15.0410082016 0.9636313221 0.05
- 15.0608121624 0.9633999637 0.05
- 15.0806161232 0.9630730173 0.05
- 15.100420084 0.9626290439 0.05
- 15.1202240448 0.9620056757 0.05
- 15.1400280056 0.9611240294 0.05
- 15.1598319664 0.9598629425 0.05
- 15.1796359272 0.9580510453 0.05
- 15.199439888 0.9554714464 0.05
- 15.2192438488 0.9518456478 0.05
- 15.2390478096 0.9468574213 0.05
- 15.2588517704 0.9400982306 0.05
- 15.2786557311 0.9313350942 0.05
- 15.2984596919 0.9205766859 0.05
- 15.3182636527 0.9079532084 0.05
- 15.3380676135 0.8947674016 0.05
- 15.3578715743 0.8822505433 0.05
- 15.3776755351 0.8722418375 0.05
- 15.3974794959 0.8666754364 0.05
- 15.4172834567 0.8665354471 0.05
- 15.4370874175 0.8719793769 0.05
- 15.4568913783 0.8821382271 0.05
- 15.4766953391 0.8953486969 0.05
- 15.4964992999 0.9096496373 0.05
- 15.5163032607 0.9233645094 0.05
- 15.5361072214 0.9351965321 0.05
- 15.5559111822 0.9446809001 0.05
- 15.575715143 0.9518806965 0.05
- 15.5955191038 0.9571120096 0.05
- 15.6153230646 0.9608135702 0.05
- 15.6351270254 0.9634001837 0.05
- 15.6549309862 0.9651722294 0.05
- 15.674734947 0.9663761928 0.05
- 15.6945389078 0.9671752505 0.05
- 15.7143428686 0.9676574 0.05
- 15.7341468294 0.9678798039 0.05
- 15.7539507902 0.967866771 0.05
- 15.773754751 0.9676229661 0.05
- 15.7935587117 0.9671223477 0.05
- 15.8133626725 0.9663092918 0.05
- 15.8331666333 0.9651041607 0.05
- 15.8529705941 0.963308979 0.05
- 15.8727745549 0.9605963678 0.05
- 15.8925785157 0.9565021507 0.05
- 15.9123824765 0.9501829619 0.05
- 15.9321864373 0.940611337 0.05
- 15.9519903981 0.9265496969 0.05
- 15.9717943589 0.9072064449 0.05
- 15.9915983197 0.8826656833 0.05
- 16.0114022805 0.8546925873 0.05
- 16.0312062412 0.8268644457 0.05
- 16.051010202 0.8034991751 0.05
- 16.0708141628 0.7892449152 0.05
- 16.0906181236 0.7868046499 0.05
- 16.1104220844 0.7967803551 0.05
- 16.1302260452 0.8171459539 0.05
- 16.150030006 0.8440113998 0.05
- 16.1698339668 0.8726279299 0.05
- 16.1896379276 0.8991461018 0.05
- 16.2094418884 0.9208897588 0.05
- 16.2292458492 0.9371233789 0.05
- 16.24904981 0.9483646341 0.05
- 16.2688537708 0.9557406127 0.05
- 16.2886577315 0.9604231836 0.05
- 16.3084616923 0.9633226778 0.05
- 16.3282656531 0.9650126426 0.05
- 16.3480696139 0.9658728415 0.05
- 16.3678735747 0.9660516095 0.05
- 16.3876775355 0.9656449851 0.05
- 16.4074814963 0.9645825434 0.05
- 16.4272854571 0.9627860016 0.05
- 16.4470894179 0.9600423544 0.05
- 16.4668933787 0.9561180574 0.05
- 16.4866973395 0.9507533363 0.05
- 16.5065013003 0.9437126213 0.05
- 16.5263052611 0.9348272291 0.05
- 16.5461092218 0.9243773212 0.05
- 16.5659131826 0.9128414544 0.05
- 16.5857171434 0.9011214119 0.05
- 16.6055211042 0.8905000354 0.05
- 16.625325065 0.8821952496 0.05
- 16.6451290258 0.8772378919 0.05
- 16.6649329866 0.87633498 0.05
- 16.6847369474 0.8793246878 0.05
- 16.7045409082 0.8856997508 0.05
- 16.724344869 0.8943207428 0.05
- 16.7441488298 0.9040261596 0.05
- 16.7639527906 0.9139116956 0.05
- 16.7837567514 0.9230848024 0.05
- 16.8035607121 0.9312024752 0.05
- 16.8233646729 0.9380458593 0.05
- 16.8431686337 0.943612552 0.05
- 16.8629725945 0.9481544797 0.05
- 16.8827765553 0.9517976061 0.05
- 16.9025805161 0.9547721924 0.05
- 16.9223844769 0.9572082714 0.05
- 16.9421884377 0.959188119 0.05
- 16.9619923985 0.9608469568 0.05
- 16.9817963593 0.9622495593 0.05
- 17.0016003201 0.9634452831 0.05
- 17.0214042809 0.9644849922 0.05
- 17.0412082416 0.9653892363 0.05
- 17.0610122024 0.9661634813 0.05
- 17.0808161632 0.9668443816 0.05
- 17.100620124 0.9674585081 0.05
- 17.1204240848 0.9679995293 0.05
- 17.1402280456 0.968483965 0.05
- 17.1600320064 0.9689203176 0.05
- 17.1798359672 0.9693060173 0.05
- 17.199639928 0.9696630092 0.05
- 17.2194438888 0.9699777026 0.05
- 17.2392478496 0.9702600143 0.05
- 17.2590518104 0.9705153986 0.05
- 17.2788557712 0.9707424408 0.05
- 17.2986597319 0.970937974 0.05
- 17.3184636927 0.9711141469 0.05
- 17.3382676535 0.9712653913 0.05
- 17.3580716143 0.9713842642 0.05
- 17.3778755751 0.9714820543 0.05
- 17.3976795359 0.9715574424 0.05
- 17.4174834967 0.9715972063 0.05
- 17.4372874575 0.9716111032 0.05
- 17.4570914183 0.9716000872 0.05
- 17.4768953791 0.9715650541 0.05
- 17.4966993399 0.9715034234 0.05
- 17.5165033007 0.9714198673 0.05
- 17.5363072615 0.9713184704 0.05
- 17.5561112222 0.971183283 0.05
- 17.575915183 0.9710067088 0.05
- 17.5957191438 0.9707757055 0.05
- 17.6155231046 0.9704789312 0.05
- 17.6353270654 0.9700954444 0.05
- 17.6551310262 0.9696212217 0.05
- 17.674934987 0.9690160556 0.05
- 17.6947389478 0.9682568282 0.05
- 17.7145429086 0.9672887905 0.05
- 17.7343468694 0.9660727958 0.05
- 17.7541508302 0.9645246678 0.05
- 17.773954791 0.9625293972 0.05
- 17.7937587518 0.9599748082 0.05
- 17.8135627125 0.9566399481 0.05
- 17.8333666733 0.9523334259 0.05
- 17.8531706341 0.9467946868 0.05
- 17.8729745949 0.9397951763 0.05
- 17.8927785557 0.9312104145 0.05
- 17.9125825165 0.9210522585 0.05
- 17.9323864773 0.909673607 0.05
- 17.9521904381 0.8977396127 0.05
- 17.9719943989 0.8861188752 0.05
- 17.9917983597 0.8759152064 0.05
- 18.0116023205 0.8683034587 0.05
- 18.0314062813 0.8640349425 0.05
- 18.051210242 0.8636445802 0.05
- 18.0710142028 0.866914527 0.05
- 18.0908181636 0.873382358 0.05
- 18.1106221244 0.8820247531 0.05
- 18.1304260852 0.8919248569 0.05
- 18.150230046 0.902212449 0.05
- 18.1700340068 0.9119993104 0.05
- 18.1898379676 0.9209805703 0.05
- 18.2096419284 0.9287214047 0.05
- 18.2294458892 0.93523561 0.05
- 18.24924985 0.9405625033 0.05
- 18.2690538108 0.9448252591 0.05
- 18.2888577716 0.9482312139 0.05
- 18.3086617323 0.9509218513 0.05
- 18.3284656931 0.9530558654 0.05
- 18.3482696539 0.9547174446 0.05
- 18.3680736147 0.9560346419 0.05
- 18.3878775755 0.9570466685 0.05
- 18.4076815363 0.9578384763 0.05
- 18.4274854971 0.95843619 0.05
- 18.4472894579 0.9588698771 0.05
- 18.4670934187 0.9591562675 0.05
- 18.4868973795 0.9593023812 0.05
- 18.5067013403 0.9593417393 0.05
- 18.5265053011 0.9592554207 0.05
- 18.5463092619 0.9590633864 0.05
- 18.5661132226 0.9587624735 0.05
- 18.5859171834 0.9583483548 0.05
- 18.6057211442 0.9578206209 0.05
- 18.625525105 0.9571797934 0.05
- 18.6453290658 0.9564115425 0.05
- 18.6651330266 0.9554983857 0.05
- 18.6849369874 0.9544423171 0.05
- 18.7047409482 0.9531934309 0.05
- 18.724544909 0.9517359818 0.05
- 18.7443488698 0.9500280612 0.05
- 18.7641528306 0.9479928775 0.05
- 18.7839567914 0.9455786447 0.05
- 18.8037607522 0.9426368638 0.05
- 18.8235647129 0.9390738424 0.05
- 18.8433686737 0.9347030658 0.05
- 18.8631726345 0.9294315759 0.05
- 18.8829765953 0.9231480022 0.05
- 18.9027805561 0.9160097214 0.05
- 18.9225845169 0.9082290092 0.05
- 18.9423884777 0.9001362094 0.05
- 18.9621924385 0.8920805343 0.05
- 18.9819963993 0.8840678002 0.05
- 19.0018003601 0.8757380227 0.05
- 19.0216043209 0.8662580545 0.05
- 19.0414082817 0.8538705066 0.05
- 19.0612122424 0.8364508595 0.05
- 19.0810162032 0.8116549416 0.05
- 19.100820164 0.7771616841 0.05
- 19.1206241248 0.7311833929 0.05
- 19.1404280856 0.673583976 0.05
- 19.1602320464 0.6059197534 0.05
- 19.1800360072 0.5336625432 0.05
- 19.199839968 0.4625478884 0.05
- 19.2196439288 0.3988775663 0.05
- 19.2394478896 0.3486794135 0.05
- 19.2592518504 0.3137055549 0.05
- 19.2790558112 0.2963234177 0.05
- 19.298859772 0.2960098076 0.05
- 19.3186637327 0.3126326461 0.05
- 19.3384676935 0.3455226089 0.05
- 19.3582716543 0.3940518771 0.05
- 19.3780756151 0.4537392861 0.05
- 19.3978795759 0.5209240091 0.05
- 19.4176835367 0.5891213187 0.05
- 19.4374874975 0.6524394038 0.05
- 19.4572914583 0.7074244297 0.05
- 19.4770954191 0.7528165025 0.05
- 19.4968993799 0.7890268368 0.05
- 19.5167033407 0.8178224138 0.05
- 19.5365073015 0.8410404863 0.05
- 19.5563112623 0.859949499 0.05
- 19.576115223 0.8756272228 0.05
- 19.5959191838 0.8885754937 0.05
- 19.6157231446 0.8992939748 0.05
- 19.6355271054 0.9080156524 0.05
- 19.6553310662 0.9151030645 0.05
- 19.675135027 0.9207661075 0.05
- 19.6949389878 0.9253177653 0.05
- 19.7147429486 0.928979961 0.05
- 19.7345469094 0.9319757706 0.05
- 19.7543508702 0.9343945083 0.05
- 19.774154831 0.9363986285 0.05
- 19.7939587918 0.9379768244 0.05
- 19.8137627526 0.9392488645 0.05
- 19.8335667133 0.9401917729 0.05
- 19.8533706741 0.9408304816 0.05
- 19.8731746349 0.9412119354 0.05
- 19.8929785957 0.941265354 0.05
- 19.9127825565 0.9410123326 0.05
- 19.9325865173 0.9403795888 0.05
- 19.9523904781 0.9393011268 0.05
- 19.9721944389 0.937636293 0.05
- 19.9919983997 0.9352075483 0.05
- 20.0118023605 0.9317188126 0.05
- 20.0316063213 0.9267837803 0.05
- 20.0514102821 0.9197611207 0.05
- 20.0712142428 0.9098632263 0.05
- 20.0910182036 0.8960653123 0.05
- 20.1108221644 0.8770952761 0.05
- 20.1306261252 0.8519508285 0.05
- 20.150430086 0.8200176214 0.05
- 20.1702340468 0.7815031095 0.05
- 20.1900380076 0.7380754925 0.05
- 20.2098419684 0.6926739068 0.05
- 20.2296459292 0.6496807601 0.05
- 20.24944989 0.6129008489 0.05
- 20.2692538508 0.5861160964 0.05
- 20.2890578116 0.571781115 0.05
- 20.3088617724 0.571586049 0.05
- 20.3286657331 0.5850168106 0.05
- 20.3484696939 0.6112663241 0.05
- 20.3682736547 0.647329521 0.05
- 20.3880776155 0.6891841569 0.05
- 20.4078815763 0.7330494106 0.05
- 20.4276855371 0.7740026638 0.05
- 20.4474894979 0.8087523676 0.05
- 20.4672934587 0.8353374029 0.05
- 20.4870974195 0.8532302325 0.05
- 20.5069013803 0.8628931753 0.05
- 20.5267053411 0.8655277973 0.05
- 20.5465093019 0.8624723984 0.05
- 20.5663132627 0.8549259526 0.05
- 20.5861172234 0.8439553134 0.05
- 20.6059211842 0.8294965227 0.05
- 20.625725145 0.8103689436 0.05
- 20.6455291058 0.7827040321 0.05
- 20.6653330666 0.739933137 0.05
- 20.6851370274 0.6723328829 0.05
- 20.7049409882 0.5714818571 0.05
- 20.724744949 0.4408430859 0.05
- 20.7445489098 0.2983722351 0.05
- 20.7643528706 0.1741400236 0.05
- 20.7841568314 0.0886974176 0.05
- 20.8039607922 0.0418547988 0.05
- 20.823764753 0.0201025368 0.05
- 20.8435687137 0.0111556803 0.05
- 20.8633726745 0.008006186 0.05
- 20.8831766353 0.0079602823 0.05
- 20.9029805961 0.0108381227 0.05
- 20.9227845569 0.0188044361 0.05
- 20.9425885177 0.0368403002 0.05
- 20.9623924785 0.0720093001 0.05
- 20.9821964393 0.1294893244 0.05
- 21.0020004001 0.2033346561 0.05
- 21.0218043609 0.2798258109 0.05
- 21.0416083217 0.3474483259 0.05
- 21.0614122825 0.4032655202 0.05
- 21.0812162432 0.4523715125 0.05
- 21.101020204 0.500832289 0.05
- 21.1208241648 0.5526518 0.05
- 21.1406281256 0.6074326974 0.05
- 21.1604320864 0.6634851323 0.05
- 21.1802360472 0.7172252322 0.05
- 21.200040008 0.7650114917 0.05
- 21.2198439688 0.8048883972 0.05
- 21.2396479296 0.8367455098 0.05
- 21.2594518904 0.8610704497 0.05
- 21.2792558512 0.8794622195 0.05
- 21.299059812 0.89329787 0.05
- 21.3188637728 0.9038898983 0.05
- 21.3386677335 0.9121252533 0.05
- 21.3584716943 0.918686565 0.05
- 21.3782756551 0.9240557686 0.05
- 21.3980796159 0.9285154566 0.05
- 21.4178835767 0.9323234437 0.05
- 21.4376875375 0.9355632698 0.05
- 21.4574914983 0.9384066737 0.05
- 21.4772954591 0.9408618786 0.05
- 21.4970994199 0.9430674167 0.05
- 21.5169033807 0.9450177718 0.05
- 21.5367073415 0.9467547745 0.05
- 21.5565113023 0.9483395337 0.05
- 21.5763152631 0.949762637 0.05
- 21.5961192238 0.9510350236 0.05
- 21.6159231846 0.9522148761 0.05
- 21.6357271454 0.9532902454 0.05
- 21.6555311062 0.9542744355 0.05
- 21.675335067 0.955175259 0.05
- 21.6951390278 0.9560146416 0.05
- 21.7149429886 0.9567903191 0.05
- 21.7347469494 0.9574991835 0.05
- 21.7545509102 0.9581649881 0.05
- 21.774354871 0.9587724192 0.05
- 21.7941588318 0.959349194 0.05
- 21.8139627926 0.9598792662 0.05
- 21.8337667534 0.9603788719 0.05
- 21.8535707141 0.9608407241 0.05
- 21.8733746749 0.9612653916 0.05
- 21.8931786357 0.9616584332 0.05
- 21.9129825965 0.9620226403 0.05
- 21.9327865573 0.9623565515 0.05
- 21.9525905181 0.9626716822 0.05
- 21.9723944789 0.9629540857 0.05
- 21.9921984397 0.9632114627 0.05
- 22.0120024005 0.9634517284 0.05
- 22.0318063613 0.9636796338 0.05
- 22.0516103221 0.9638835961 0.05
- 22.0714142829 0.9640802751 0.05
- 22.0912182436 0.9642685902 0.05
- 22.1110222044 0.9644574391 0.05
- 22.1308261652 0.9646296556 0.05
- 22.150630126 0.9647859805 0.05
- 22.1704340868 0.9649290638 0.05
- 22.1902380476 0.9650579433 0.05
- 22.2100420084 0.9651477541 0.05
- 22.2298459692 0.965211549 0.05
- 22.24964993 0.9652526104 0.05
- 22.2694538908 0.9652530372 0.05
- 22.2892578516 0.9652182455 0.05
- 22.3090618124 0.9651321947 0.05
- 22.3288657732 0.9650023309 0.05
- 22.3486697339 0.9648146711 0.05
- 22.3684736947 0.9645417263 0.05
- 22.3882776555 0.9641562477 0.05
- 22.4080816163 0.9636081124 0.05
- 22.4278855771 0.9628238981 0.05
- 22.4476895379 0.9616838034 0.05
- 22.4674934987 0.9600288465 0.05
- 22.4872974595 0.95762415 0.05
- 22.5071014203 0.9541877032 0.05
- 22.5269053811 0.9494404664 0.05
- 22.5467093419 0.9431699476 0.05
- 22.5665133027 0.935209314 0.05
- 22.5863172635 0.9257279975 0.05
- 22.6061212242 0.9152541904 0.05
- 22.625925185 0.9044206283 0.05
- 22.6457291458 0.8942007128 0.05
- 22.6655331066 0.8856629589 0.05
- 22.6853370674 0.8794898547 0.05
- 22.7051410282 0.8761179735 0.05
- 22.724944989 0.8752587942 0.05
- 22.7447489498 0.8761520038 0.05
- 22.7645529106 0.8774868275 0.05
- 22.7843568714 0.8776482523 0.05
- 22.8041608322 0.875406592 0.05
- 22.823964793 0.8699158192 0.05
- 22.8437687538 0.8613264209 0.05
- 22.8635727145 0.8507303969 0.05
- 22.8833766753 0.8398064116 0.05
- 22.9031806361 0.8307686588 0.05
- 22.9229845969 0.8257704953 0.05
- 22.9427885577 0.8257606846 0.05
- 22.9625925185 0.831383548 0.05
- 22.9823964793 0.8420260299 0.05
- 23.0022004401 0.8561759536 0.05
- 23.0220044009 0.8719608112 0.05
- 23.0418083617 0.8878766484 0.05
- 23.0616123225 0.902215071 0.05
- 23.0814162833 0.9141105886 0.05
- 23.101220244 0.9231866574 0.05
- 23.1210242048 0.9294797333 0.05
- 23.1408281656 0.933157101 0.05
- 23.1606321264 0.9344800618 0.05
- 23.1804360872 0.9333702828 0.05
- 23.200240048 0.9295348189 0.05
- 23.2200440088 0.9223001902 0.05
- 23.2398479696 0.9107765654 0.05
- 23.2596519304 0.8938713395 0.05
- 23.2794558912 0.8712289489 0.05
- 23.299259852 0.8431691658 0.05
- 23.3190638128 0.8113302509 0.05
- 23.3388677736 0.7788741215 0.05
- 23.3586717343 0.7489959103 0.05
- 23.3784756951 0.7251184408 0.05
- 23.3982796559 0.7097768047 0.05
- 23.4180836167 0.703838849 0.05
- 23.4378875775 0.706579731 0.05
- 23.4576915383 0.7155148673 0.05
- 23.4774954991 0.7276613492 0.05
- 23.4972994599 0.7396474985 0.05
- 23.5171034207 0.7488308858 0.05
- 23.5369073815 0.7535959462 0.05
- 23.5567113423 0.7535374159 0.05
- 23.5765153031 0.7493001611 0.05
- 23.5963192639 0.7414291134 0.05
- 23.6161232246 0.7300367 0.05
- 23.6359271854 0.7143115511 0.05
- 23.6557311462 0.692147208 0.05
- 23.675535107 0.6607115067 0.05
- 23.6953390678 0.6170344123 0.05
- 23.7151430286 0.5592439801 0.05
- 23.7349469894 0.4883224999 0.05
- 23.7547509502 0.4091355897 0.05
- 23.774554911 0.328438531 0.05
- 23.7943588718 0.2548825274 0.05
- 23.8141628326 0.1947451793 0.05
- 23.8339667934 0.1490626057 0.05
- 23.8537707542 0.1185022938 0.05
- 23.8735747149 0.1003565445 0.05
- 23.8933786757 0.0924996615 0.05
- 23.9131826365 0.0942294554 0.05
- 23.9329865973 0.1056058629 0.05
- 23.9527905581 0.1282089043 0.05
- 23.9725945189 0.1646458511 0.05
- 23.9923984797 0.2167794459 0.05
- 24.0122024405 0.2854235194 0.05
- 24.0320064013 0.3677324442 0.05
- 24.0518103621 0.4562391274 0.05
- 24.0716143229 0.5423030514 0.05
- 24.0914182837 0.617797074 0.05
- 24.1112222444 0.677387408 0.05
- 24.1310262052 0.7200047385 0.05
- 24.150830166 0.747525054 0.05
- 24.1706341268 0.7636617901 0.05
- 24.1904380876 0.7725633888 0.05
- 24.2102420484 0.7779096583 0.05
- 24.2300460092 0.7827899511 0.05
- 24.24984997 0.7892645869 0.05
- 24.2696539308 0.7981538296 0.05
- 24.2894578916 0.8094789818 0.05
- 24.3092618524 0.8226620935 0.05
- 24.3290658132 0.836664261 0.05
- 24.348869774 0.8504546763 0.05
- 24.3686737347 0.8631913084 0.05
- 24.3884776955 0.8745568967 0.05
- 24.4082816563 0.8841598301 0.05
- 24.4280856171 0.8921507213 0.05
- 24.4478895779 0.898609251 0.05
- 24.4676935387 0.9039201382 0.05
- 24.4874974995 0.9082139202 0.05
- 24.5073014603 0.9117586811 0.05
- 24.5271054211 0.9147382811 0.05
- 24.5469093819 0.9172081152 0.05
- 24.5667133427 0.9193534416 0.05
- 24.5865173035 0.9211956596 0.05
- 24.6063212643 0.9227785471 0.05
- 24.626125225 0.9241272657 0.05
- 24.6459291858 0.9253120266 0.05
- 24.6657331466 0.9263412275 0.05
- 24.6855371074 0.9272116734 0.05
- 24.7053410682 0.9279746275 0.05
- 24.725145029 0.9285911055 0.05
- 24.7449489898 0.9291268519 0.05
- 24.7647529506 0.9295347196 0.05
- 24.7845569114 0.9298944401 0.05
- 24.8043608722 0.9301407163 0.05
- 24.824164833 0.9302775765 0.05
- 24.8439687938 0.9303685243 0.05
- 24.8637727546 0.9303484444 0.05
- 24.8835767153 0.9302747306 0.05
- 24.9033806761 0.9301026216 0.05
- 24.9231846369 0.9298616216 0.05
- 24.9429885977 0.9295393719 0.05
- 24.9627925585 0.9291655763 0.05
- 24.9825965193 0.9286866904 0.05
- 25.0024004801 0.928120179 0.05
- 25.0222044409 0.9274830571 0.05
- 25.0420084017 0.9267796092 0.05
- 25.0618123625 0.9259794934 0.05
- 25.0816163233 0.9250954762 0.05
- 25.1014202841 0.9241432012 0.05
- 25.1212242448 0.9230830629 0.05
- 25.1410282056 0.921960849 0.05
- 25.1608321664 0.9207022821 0.05
- 25.1806361272 0.9194123884 0.05
- 25.200440088 0.9179785688 0.05
- 25.2202440488 0.9165323645 0.05
- 25.2400480096 0.9149394651 0.05
- 25.2598519704 0.9133287673 0.05
- 25.2796559312 0.9116692352 0.05
- 25.299459892 0.9099720226 0.05
- 25.3192638528 0.9082731552 0.05
- 25.3390678136 0.9065669472 0.05
- 25.3588717744 0.9048448889 0.05
- 25.3786757351 0.9031651634 0.05
- 25.3984796959 0.9016254609 0.05
- 25.4182836567 0.9000794967 0.05
- 25.4380876175 0.8987202266 0.05
- 25.4578915783 0.8974798951 0.05
- 25.4776955391 0.8963764073 0.05
- 25.4974994999 0.8955199336 0.05
- 25.5173034607 0.8948458542 0.05
- 25.5371074215 0.8943710681 0.05
- 25.5569113823 0.8942291658 0.05
- 25.5767153431 0.8943181089 0.05
- 25.5965193039 0.8947974264 0.05
- 25.6163232647 0.8956374257 0.05
- 25.6361272254 0.8968491911 0.05
- 25.6559311862 0.8984039453 0.05
- 25.675735147 0.9003517385 0.05
- 25.6955391078 0.9026650866 0.05
- 25.7153430686 0.9053552658 0.05
- 25.7351470294 0.9083831888 0.05
- 25.7549509902 0.911672948 0.05
- 25.774754951 0.9151909051 0.05
- 25.7945589118 0.918868581 0.05
- 25.8143628726 0.9226527227 0.05
- 25.8341668334 0.9265008933 0.05
- 25.8539707942 0.9303646731 0.05
- 25.873774755 0.9341397554 0.05
- 25.8935787157 0.9378362949 0.05
- 25.9133826765 0.9413846602 0.05
- 25.9331866373 0.9447405372 0.05
- 25.9529905981 0.9478648078 0.05
- 25.9727945589 0.9506900377 0.05
- 25.9925985197 0.9532588243 0.05
- 26.0124024805 0.9555149959 0.05
- 26.0322064413 0.9574312842 0.05
- 26.0520104021 0.9589833401 0.05
- 26.0718143629 0.960156147 0.05
- 26.0916183237 0.9609293239 0.05
- 26.1114222845 0.9612709282 0.05
- 26.1312262452 0.9611476022 0.05
- 26.151030206 0.9605295171 0.05
- 26.1708341668 0.9593598609 0.05
- 26.1906381276 0.9576088715 0.05
- 26.2104420884 0.9552306182 0.05
- 26.2302460492 0.9521963764 0.05
- 26.25005001 0.9484346137 0.05
- 26.2698539708 0.9439717511 0.05
- 26.2896579316 0.9387932071 0.05
- 26.3094618924 0.9329717368 0.05
- 26.3292658532 0.9265982233 0.05
- 26.349069814 0.9198959584 0.05
- 26.3688737748 0.9131153331 0.05
- 26.3886777355 0.9064479133 0.05
- 26.4084816963 0.9003594265 0.05
- 26.4282856571 0.8951343876 0.05
- 26.4480896179 0.8912442139 0.05
- 26.4678935787 0.8887526711 0.05
- 26.4876975395 0.8879717832 0.05
- 26.5075015003 0.8887986156 0.05
- 26.5273054611 0.8910779172 0.05
- 26.5471094219 0.8947057577 0.05
- 26.5669133827 0.8992542576 0.05
- 26.5867173435 0.9043719006 0.05
- 26.6065213043 0.9097740229 0.05
- 26.6263252651 0.9151609192 0.05
- 26.6461292258 0.9203806068 0.05
- 26.6659331866 0.9252020668 0.05
- 26.6857371474 0.9295616361 0.05
- 26.7055411082 0.9334605485 0.05
- 26.725345069 0.9368929778 0.05
- 26.7451490298 0.9399116577 0.05
- 26.7649529906 0.942557248 0.05
- 26.7847569514 0.9448668849 0.05
- 26.8045609122 0.946887196 0.05
- 26.824364873 0.9486385026 0.05
- 26.8441688338 0.9501594742 0.05
- 26.8639727946 0.9514654742 0.05
- 26.8837767554 0.9525719038 0.05
- 26.9035807161 0.953466075 0.05
- 26.9233846769 0.9541563253 0.05
- 26.9431886377 0.9546021068 0.05
- 26.9629925985 0.9547858015 0.05
- 26.9827965593 0.9546830203 0.05
- 27.0026005201 0.9543076156 0.05
- 27.0224044809 0.9536499567 0.05
- 27.0422084417 0.9527880373 0.05
- 27.0620124025 0.9518376041 0.05
- 27.0818163633 0.9509103322 0.05
- 27.1016203241 0.9501411949 0.05
- 27.1214242849 0.9497118601 0.05
- 27.1412282456 0.9497463212 0.05
- 27.1610322064 0.9503080975 0.05
- 27.1808361672 0.9513628821 0.05
- 27.200640128 0.9528381657 0.05
- 27.2204440888 0.9546077407 0.05
- 27.2402480496 0.9564537683 0.05
- 27.2600520104 0.9583159761 0.05
- 27.2798559712 0.9600065553 0.05
- 27.299659932 0.961472409 0.05
- 27.3194638928 0.9626690556 0.05
- 27.3392678536 0.9635813707 0.05
- 27.3590718144 0.9642241887 0.05
- 27.3788757752 0.9646208552 0.05
- 27.3986797359 0.9647843301 0.05
- 27.4184836967 0.964727569 0.05
- 27.4382876575 0.9644260505 0.05
- 27.4580916183 0.9638536673 0.05
- 27.4778955791 0.9629487354 0.05
- 27.4976995399 0.9616139071 0.05
- 27.5175035007 0.9597115561 0.05
- 27.5373074615 0.9570687403 0.05
- 27.5571114223 0.9534487348 0.05
- 27.5769153831 0.9486323446 0.05
- 27.5967193439 0.9423190107 0.05
- 27.6165233047 0.9342973657 0.05
- 27.6363272655 0.9244823863 0.05
- 27.6561312262 0.9130662196 0.05
- 27.675935187 0.9003178035 0.05
- 27.6957391478 0.8870476147 0.05
- 27.7155431086 0.8740795505 0.05
- 27.7353470694 0.8624721971 0.05
- 27.7551510302 0.853330998 0.05
- 27.774954991 0.8474281175 0.05
- 27.7947589518 0.8452948511 0.05
- 27.8145629126 0.847081663 0.05
- 27.8343668734 0.8524500595 0.05
- 27.8541708342 0.8608370054 0.05
- 27.873974795 0.8711475352 0.05
- 27.8937787558 0.8826136889 0.05
- 27.9135827165 0.8941781798 0.05
- 27.9333866773 0.9053195146 0.05
- 27.9531906381 0.9153520283 0.05
- 27.9729945989 0.9240904623 0.05
- 27.9927985597 0.9314010185 0.05
- 28.0126025205 0.9374015692 0.05
- 28.0324064813 0.9421543098 0.05
- 28.0522104421 0.9458440724 0.05
- 28.0720144029 0.9486052216 0.05
- 28.0918183637 0.9505783128 0.05
- 28.1116223245 0.9518572102 0.05
- 28.1314262853 0.9525811604 0.05
- 28.151230246 0.9527401633 0.05
- 28.1710342068 0.9524043972 0.05
- 28.1908381676 0.9515893252 0.05
- 28.2106421284 0.9503450354 0.05
- 28.2304460892 0.9486868513 0.05
- 28.25025005 0.9467277434 0.05
- 28.2700540108 0.9446075306 0.05
- 28.2898579716 0.9424674832 0.05
- 28.3096619324 0.9405728305 0.05
- 28.3294658932 0.9391575712 0.05
- 28.349269854 0.9384535714 0.05
- 28.3690738148 0.9386038772 0.05
- 28.3888777756 0.9396554084 0.05
- 28.4086817363 0.9415214158 0.05
- 28.4284856971 0.9440730185 0.05
- 28.4482896579 0.9469569164 0.05
- 28.4680936187 0.9500194645 0.05
- 28.4878975795 0.9529339275 0.05
- 28.5077015403 0.9555294151 0.05
- 28.5275055011 0.9576768387 0.05
- 28.5473094619 0.9593216372 0.05
- 28.5671134227 0.9605150833 0.05
- 28.5869173835 0.9613500929 0.05
- 28.6067213443 0.9619230481 0.05
- 28.6265253051 0.9623473085 0.05
- 28.6463292659 0.9627335167 0.05
- 28.6661332266 0.9631710379 0.05
- 28.6859371874 0.9637100644 0.05
- 28.7057411482 0.9643551487 0.05
- 28.725545109 0.9651130415 0.05
- 28.7453490698 0.965986699 0.05
- 28.7651530306 0.9669122498 0.05
- 28.7849569914 0.967872051 0.05
- 28.8047609522 0.9688272255 0.05
- 28.824564913 0.969754595 0.05
- 28.8443688738 0.9706289349 0.05
- 28.8641728346 0.971425798 0.05
- 28.8839767954 0.9721380297 0.05
- 28.9037807562 0.9727685139 0.05
- 28.9235847169 0.9733141636 0.05
- 28.9433886777 0.9737852724 0.05
- 28.9631926385 0.974185142 0.05
- 28.9829965993 0.9745281087 0.05
- 29.0028005601 0.9748171763 0.05
- 29.0226045209 0.9750631457 0.05
- 29.0424084817 0.9752694796 0.05
- 29.0622124425 0.9754468621 0.05
- 29.0820164033 0.975597785 0.05
- 29.1018203641 0.9757193843 0.05
- 29.1216243249 0.9758201885 0.05
- 29.1414282857 0.9759007472 0.05
- 29.1612322464 0.9759627732 0.05
- 29.1810362072 0.976002162 0.05
- 29.200840168 0.9760208401 0.05
- 29.2206441288 0.9760177585 0.05
- 29.2404480896 0.9759877409 0.05
- 29.2602520504 0.9759262128 0.05
- 29.2800560112 0.975829565 0.05
- 29.299859972 0.9756956904 0.05
- 29.3196639328 0.9755075759 0.05
- 29.3394678936 0.9752403104 0.05
- 29.3592718544 0.9748717046 0.05
- 29.3790758152 0.9743498877 0.05
- 29.398879776 0.9736201451 0.05
- 29.4186837367 0.9726003061 0.05
- 29.4384876975 0.9711813392 0.05
- 29.4582916583 0.9692425827 0.05
- 29.4780956191 0.9666679528 0.05
- 29.4978995799 0.9633754202 0.05
- 29.5177035407 0.9593423404 0.05
- 29.5375075015 0.9547132336 0.05
- 29.5573114623 0.9497489393 0.05
- 29.5771154231 0.9448154196 0.05
- 29.5969193839 0.9404378698 0.05
- 29.6167233447 0.9371637696 0.05
- 29.6365273055 0.9353405939 0.05
- 29.6563312663 0.9352187941 0.05
- 29.676135227 0.9367633122 0.05
- 29.6959391878 0.939741833 0.05
- 29.7157431486 0.9435911517 0.05
- 29.7355471094 0.9477181296 0.05
- 29.7553510702 0.9515656398 0.05
- 29.775155031 0.9545342055 0.05
- 29.7949589918 0.9562023201 0.05
- 29.8147629526 0.9563345605 0.05
- 29.8345669134 0.9548300931 0.05
- 29.8543708742 0.9518163945 0.05
- 29.874174835 0.9475364319 0.05
- 29.8939787958 0.9423298577 0.05
- 29.9137827566 0.9367846624 0.05
- 29.9335867173 0.9314018198 0.05
- 29.9533906781 0.9267532386 0.05
- 29.9731946389 0.9234128821 0.05
- 29.9929985997 0.9217394935 0.05
- 30.0128025605 0.9220276671 0.05
- 30.0326065213 0.9241038478 0.05
- 30.0524104821 0.9278857893 0.05
- 30.0722144429 0.9328596683 0.05
- 30.0920184037 0.9386414856 0.05
- 30.1118223645 0.9446226562 0.05
- 30.1316263253 0.9504238267 0.05
- 30.1514302861 0.9556733794 0.05
- 30.1712342468 0.9601144516 0.05
- 30.1910382076 0.9637086675 0.05
- 30.2108421684 0.9664518698 0.05
- 30.2306461292 0.968432325 0.05
- 30.25045009 0.9697579536 0.05
- 30.2702540508 0.9705403707 0.05
- 30.2900580116 0.9708655708 0.05
- 30.3098619724 0.9707985092 0.05
- 30.3296659332 0.9703809577 0.05
- 30.349469894 0.96960742 0.05
- 30.3692738548 0.9684513299 0.05
- 30.3890778156 0.9668897985 0.05
- 30.4088817764 0.964881261 0.05
- 30.4286857371 0.9623908637 0.05
- 30.4484896979 0.9594400236 0.05
- 30.4682936587 0.9561053903 0.05
- 30.4880976195 0.952547736 0.05
- 30.5079015803 0.948926937 0.05
- 30.5277055411 0.9455160101 0.05
- 30.5475095019 0.9425778177 0.05
- 30.5673134627 0.9402469383 0.05
- 30.5871174235 0.9385980904 0.05
- 30.6069213843 0.9375442845 0.05
- 30.6267253451 0.9368170392 0.05
- 30.6465293059 0.9359610454 0.05
- 30.6663332667 0.9343823708 0.05
- 30.6861372274 0.9314138096 0.05
- 30.7059411882 0.9264941277 0.05
- 30.725745149 0.91926163 0.05
- 30.7455491098 0.9098410021 0.05
- 30.7653530706 0.8985277629 0.05
- 30.7851570314 0.8864223507 0.05
- 30.8049609922 0.874687118 0.05
- 30.824764953 0.8647972876 0.05
- 30.8445689138 0.8579115495 0.05
- 30.8643728746 0.8553023366 0.05
- 30.8841768354 0.8572218349 0.05
- 30.9039807962 0.8636813763 0.05
- 30.923784757 0.8739912083 0.05
- 30.9435887177 0.8870248437 0.05
- 30.9633926785 0.9013784049 0.05
- 30.9831966393 0.9158840019 0.05
- 31.0030006001 0.9292632277 0.05
- 31.0228045609 0.9409510612 0.05
- 31.0426085217 0.950531717 0.05
- 31.0624124825 0.9579654489 0.05
- 31.0822164433 0.9635673327 0.05
- 31.1020204041 0.9676070859 0.05
- 31.1218243649 0.970471218 0.05
- 31.1416283257 0.9724690753 0.05
- 31.1614322865 0.9738768717 0.05
- 31.1812362472 0.9748597951 0.05
- 31.201040208 0.9755554707 0.05
- 31.2208441688 0.9760486852 0.05
- 31.2406481296 0.9764083729 0.05
- 31.2604520904 0.9766680255 0.05
- 31.2802560512 0.9768417971 0.05
- 31.300060012 0.9769507592 0.05
- 31.3198639728 0.9770123348 0.05
- 31.3396679336 0.9770296137 0.05
- 31.3594718944 0.9770083467 0.05
- 31.3792758552 0.9769498472 0.05
- 31.399079816 0.9768520466 0.05
- 31.4188837768 0.9767215675 0.05
- 31.4386877375 0.9765539907 0.05
- 31.4584916983 0.976343976 0.05
- 31.4782956591 0.9760926123 0.05
- 31.4980996199 0.9757903564 0.05
- 31.5179035807 0.9754365026 0.05
- 31.5377075415 0.9750285569 0.05
- 31.5575115023 0.9745524068 0.05
- 31.5773154631 0.9739885379 0.05
- 31.5971194239 0.9733268753 0.05
- 31.6169233847 0.9725511654 0.05
- 31.6367273455 0.9716101099 0.05
- 31.6565313063 0.9704876728 0.05
- 31.6763352671 0.9691299061 0.05
- 31.6961392278 0.967463144 0.05
- 31.7159431886 0.9653801653 0.05
- 31.7357471494 0.9627563692 0.05
- 31.7555511102 0.9593849053 0.05
- 31.775355071 0.9550309349 0.05
- 31.7951590318 0.9493369564 0.05
- 31.8149629926 0.9418720891 0.05
- 31.8347669534 0.9321095854 0.05
- 31.8545709142 0.9194589167 0.05
- 31.874374875 0.9034508622 0.05
- 31.8941788358 0.8835637182 0.05
- 31.9139827966 0.8598975392 0.05
- 31.9337867574 0.8326274407 0.05
- 31.9535907181 0.8029473732 0.05
- 31.9733946789 0.7725945505 0.05
- 31.9931986397 0.7431596553 0.05
- 32.0130026005 0.7167217495 0.05
- 32.0328065613 0.6957964007 0.05
- 32.0526105221 0.6818305301 0.05
- 32.0724144829 0.6759423026 0.05
- 32.0922184437 0.6787285225 0.05
- 32.1120224045 0.689946593 0.05
- 32.1318263653 0.7087705505 0.05
- 32.1516303261 0.7338317066 0.05
- 32.1714342869 0.7626641094 0.05
- 32.1912382476 0.7933357931 0.05
- 32.2110422084 0.8238632774 0.05
- 32.2308461692 0.8521201463 0.05
- 32.25065013 0.877008305 0.05
- 32.2704540908 0.89786838 0.05
- 32.2902580516 0.9147153954 0.05
- 32.3100620124 0.9279190527 0.05
- 32.3298659732 0.9380793253 0.05
- 32.349669934 0.9457422729 0.05
- 32.3694738948 0.9515987922 0.05
- 32.3892778556 0.956066886 0.05
- 32.4090818164 0.959531933 0.05
- 32.4288857772 0.9622562188 0.05
- 32.4486897379 0.9644737595 0.05
- 32.4684936987 0.9662713707 0.05
- 32.4882976595 0.9677762406 0.05
- 32.5081016203 0.9690346046 0.05
- 32.5279055811 0.9701166357 0.05
- 32.5477095419 0.9710494421 0.05
- 32.5675135027 0.9718541756 0.05
- 32.5873174635 0.9725603356 0.05
- 32.6071214243 0.973173435 0.05
- 32.6269253851 0.9737104312 0.05
- 32.6467293459 0.9741843906 0.05
- 32.6665333067 0.974609079 0.05
- 32.6863372675 0.9749753897 0.05
- 32.7061412282 0.9753042199 0.05
- 32.725945189 0.9755870146 0.05
- 32.7457491498 0.9758340587 0.05
- 32.7655531106 0.976051436 0.05
- 32.7853570714 0.9762383182 0.05
- 32.8051610322 0.9763934012 0.05
- 32.824964993 0.9765154183 0.05
- 32.8447689538 0.9766102862 0.05
- 32.8645729146 0.9766779992 0.05
- 32.8843768754 0.9767184713 0.05
- 32.9041808362 0.9767235334 0.05
- 32.923984797 0.9766940917 0.05
- 32.9437887578 0.9766345043 0.05
- 32.9635927185 0.9765463859 0.05
- 32.9833966793 0.9764145406 0.05
- 33.0032006401 0.9762344612 0.05
- 33.0230046009 0.9759977153 0.05
- 33.0428085617 0.9757091141 0.05
- 33.0626125225 0.975352468 0.05
- 33.0824164833 0.9748958138 0.05
- 33.1022204441 0.9743422858 0.05
- 33.1220244049 0.9736450298 0.05
- 33.1418283657 0.9727592322 0.05
- 33.1616323265 0.9716246025 0.05
- 33.1814362873 0.9701155861 0.05
- 33.201240248 0.9680542678 0.05
- 33.2210442088 0.9651921116 0.05
- 33.2408481696 0.9611670865 0.05
- 33.2606521304 0.9553668936 0.05
- 33.2804560912 0.9470848417 0.05
- 33.300260052 0.9354749846 0.05
- 33.3200640128 0.9195241189 0.05
- 33.3398679736 0.8984835272 0.05
- 33.3596719344 0.871949438 0.05
- 33.3794758952 0.8402969076 0.05
- 33.399279856 0.8048689009 0.05
- 33.4190838168 0.767679855 0.05
- 33.4388877776 0.7316564241 0.05
- 33.4586917383 0.6995840509 0.05
- 33.4784956991 0.6743020804 0.05
- 33.4982996599 0.6580794421 0.05
- 33.5181036207 0.6519390812 0.05
- 33.5379075815 0.6562452598 0.05
- 33.5577115423 0.670540318 0.05
- 33.5775155031 0.6935885027 0.05
- 33.5973194639 0.7229920448 0.05
- 33.6171234247 0.7561263828 0.05
- 33.6369273855 0.7905837109 0.05
- 33.6567313463 0.8235566837 0.05
- 33.6765353071 0.8532652733 0.05
- 33.6963392679 0.8784912409 0.05
- 33.7161432286 0.8990253228 0.05
- 33.7359471894 0.9150358345 0.05
- 33.7557511502 0.9271167205 0.05
- 33.775555111 0.9360642213 0.05
- 33.7953590718 0.9425428445 0.05
- 33.8151630326 0.9471907562 0.05
- 33.8349669934 0.950473117 0.05
- 33.8547709542 0.95274342 0.05
- 33.874574915 0.9542527284 0.05
- 33.8943788758 0.9552033759 0.05
- 33.9141828366 0.9556850721 0.05
- 33.9339867974 0.9557848524 0.05
- 33.9537907582 0.9555214306 0.05
- 33.9735947189 0.9549095884 0.05
- 33.9933986797 0.95392393 0.05
- 34.0132026405 0.9524621274 0.05
- 34.0330066013 0.9503924276 0.05
- 34.0528105621 0.9474697505 0.05
- 34.0726145229 0.9433681589 0.05
- 34.0924184837 0.9375695862 0.05
- 34.1122224445 0.9294201729 0.05
- 34.1320264053 0.9180611497 0.05
- 34.1518303661 0.9026243602 0.05
- 34.1716343269 0.8823821461 0.05
- 34.1914382877 0.8567967962 0.05
- 34.2112422484 0.8261107984 0.05
- 34.2310462092 0.7912730351 0.05
- 34.25085017 0.7542745786 0.05
- 34.2706541308 0.7177208623 0.05
- 34.2904580916 0.6842101647 0.05
- 34.3102620524 0.6563444884 0.05
- 34.3300660132 0.6363915721 0.05
- 34.349869974 0.6257567992 0.05
- 34.3696739348 0.6248137431 0.05
- 34.3894778956 0.6332480319 0.05
- 34.4092818564 0.6500099715 0.05
- 34.4290858172 0.6732403197 0.05
- 34.448889778 0.7004150093 0.05
- 34.4686937387 0.7291932833 0.05
- 34.4884976995 0.7569450418 0.05
- 34.5083016603 0.7817006377 0.05
- 34.5281056211 0.8020808533 0.05
- 34.5479095819 0.8174678985 0.05
- 34.5677135427 0.8277955866 0.05
- 34.5875175035 0.8335267879 0.05
- 34.6073214643 0.8352301224 0.05
- 34.6271254251 0.8332686016 0.05
- 34.6469293859 0.8282673546 0.05
- 34.6667333467 0.8204806953 0.05
- 34.6865373075 0.8102328169 0.05
- 34.7063412683 0.7976212117 0.05
- 34.726145229 0.7831013649 0.05
- 34.7459491898 0.7669238311 0.05
- 34.7657531506 0.7493098509 0.05
- 34.7855571114 0.7304155429 0.05
- 34.8053610722 0.7104162802 0.05
- 34.825165033 0.6892132323 0.05
- 34.8449689938 0.6660658085 0.05
- 34.8647729546 0.6401673195 0.05
- 34.8845769154 0.6099221879 0.05
- 34.9043808762 0.5738063314 0.05
- 34.924184837 0.5303085543 0.05
- 34.9439887978 0.4788483572 0.05
- 34.9637927586 0.4203724808 0.05
- 34.9835967193 0.357942471 0.05
- 35.0034006801 0.2944712723 0.05
- 35.0232046409 0.2353899777 0.05
- 35.0430086017 0.1839354734 0.05
- 35.0628125625 0.1422257773 0.05
- 35.0826165233 0.1105264464 0.05
- 35.1024204841 0.0879389907 0.05
- 35.1222244449 0.073044951 0.05
- 35.1420284057 0.0643914193 0.05
- 35.1618323665 0.0609743024 0.05
- 35.1816363273 0.0623539589 0.05
- 35.2014402881 0.0686931563 0.05
- 35.2212442488 0.0806567703 0.05
- 35.2410482096 0.0997535547 0.05
- 35.2608521704 0.1272086606 0.05
- 35.2806561312 0.1641278141 0.05
- 35.300460092 0.2115950831 0.05
- 35.3202640528 0.2685526212 0.05
- 35.3400680136 0.3322060951 0.05
- 35.3598719744 0.3988155251 0.05
- 35.3796759352 0.4641195265 0.05
- 35.399479896 0.5243039934 0.05
- 35.4192838568 0.5768928193 0.05
- 35.4390878176 0.6203876741 0.05
- 35.4588917784 0.6547387123 0.05
- 35.4786957391 0.6804579242 0.05
- 35.4984996999 0.6979028259 0.05
- 35.5183036607 0.7078868498 0.05
- 35.5381076215 0.7106674644 0.05
- 35.5579115823 0.7058293453 0.05
- 35.5777155431 0.6927331416 0.05
- 35.5975195039 0.6705541132 0.05
- 35.6173234647 0.6377964428 0.05
- 35.6371274255 0.593711519 0.05
- 35.6569313863 0.5384364567 0.05
- 35.6767353471 0.4730507997 0.05
- 35.6965393079 0.4012100263 0.05
- 35.7163432687 0.3276552601 0.05
- 35.7361472294 0.2572862312 0.05
- 35.7559511902 0.1953984056 0.05
- 35.775755151 0.1448062663 0.05
- 35.7955591118 0.1062191176 0.05
- 35.8153630726 0.0784768165 0.05
- 35.8351670334 0.0595196812 0.05
- 35.8549709942 0.0475363589 0.05
- 35.874774955 0.0406068724 0.05
- 35.8945789158 0.0377514898 0.05
- 35.9143828766 0.038352783 0.05
- 35.9341868374 0.042519068 0.05
- 35.9539907982 0.0510705393 0.05
- 35.973794759 0.0650643998 0.05
- 35.9935987197 0.0866953959 0.05
- 36.0134026805 0.1175602958 0.05
- 36.0332066413 0.1598413406 0.05
- 36.0530106021 0.2139443147 0.05
- 36.0728145629 0.2785290935 0.05
- 36.0926185237 0.3502094218 0.05
- 36.1124224845 0.4243524489 0.05
- 36.1322264453 0.4958812483 0.05
- 36.1520304061 0.5605223668 0.05
- 36.1718343669 0.6159768545 0.05
- 36.1916383277 0.6612516969 0.05
- 36.2114422885 0.6965227758 0.05
- 36.2312462492 0.7229108143 0.05
- 36.25105021 0.7414836996 0.05
- 36.2708541708 0.7535325928 0.05
- 36.2906581316 0.759410578 0.05
- 36.3104620924 0.7597530193 0.05
- 36.3302660532 0.754017985 0.05
- 36.350070014 0.7414418282 0.05
- 36.3698739748 0.7199480837 0.05
- 36.3896779356 0.6872986544 0.05
- 36.4094818964 0.6400964506 0.05
- 36.4292858572 0.5757490105 0.05
- 36.449089818 0.4933871591 0.05
- 36.4688937788 0.3967055094 0.05
- 36.4886977395 0.2937322265 0.05
- 36.5085017003 0.1971610602 0.05
- 36.5283056611 0.1189746789 0.05
- 36.5481096219 0.0646413577 0.05
- 36.5679135827 0.0321954897 0.05
- 36.5877175435 0.0152522025 0.05
- 36.6075215043 0.0072540262 0.05
- 36.6273254651 0.0036939382 0.05
- 36.6471294259 0.0021643887 0.05
- 36.6669333867 0.0015451808 0.05
- 36.6867373475 0.0014067565 0.05
- 36.7065413083 0.001643781 0.05
- 36.7263452691 0.0024075898 0.05
- 36.7461492298 0.0042538842 0.05
- 36.7659531906 0.008473913 0.05
- 36.7857571514 0.017700729 0.05
- 36.8055611122 0.0366218034 0.05
- 36.825365073 0.0714722163 0.05
- 36.8451690338 0.1272204427 0.05
- 36.8649729946 0.2044998506 0.05
- 36.8847769554 0.2971979211 0.05
- 36.9045809162 0.3942723282 0.05
- 36.924384877 0.4861234044 0.05
- 36.9441888378 0.5650970356 0.05
- 36.9639927986 0.6294216627 0.05
- 36.9837967594 0.6800263779 0.05
- 37.0036007201 0.7191354081 0.05
- 37.0234046809 0.7495574526 0.05
- 37.0432086417 0.7734984612 0.05
- 37.0630126025 0.7925862889 0.05
- 37.0828165633 0.8083068873 0.05
- 37.1026205241 0.8214056853 0.05
- 37.1224244849 0.8324866517 0.05
- 37.1422284457 0.8419874761 0.05
- 37.1620324065 0.8503135046 0.05
- 37.1818363673 0.8575332245 0.05
- 37.2016403281 0.8638914994 0.05
- 37.2214442889 0.8695448205 0.05
- 37.2412482496 0.8745486715 0.05
- 37.2610522104 0.8790797341 0.05
- 37.2808561712 0.8830599521 0.05
- 37.300660132 0.8867105024 0.05
- 37.3204640928 0.8900474086 0.05
- 37.3402680536 0.8930335344 0.05
- 37.3600720144 0.8957549185 0.05
- 37.3798759752 0.8982747435 0.05
- 37.399679936 0.9006127267 0.05
- 37.4194838968 0.9027169323 0.05
- 37.4392878576 0.9046647324 0.05
- 37.4590918184 0.9064964376 0.05
- 37.4788957792 0.9081558617 0.05
- 37.4986997399 0.9096876013 0.05
- 37.5185037007 0.9111140634 0.05
- 37.5383076615 0.9124225255 0.05
- 37.5581116223 0.9136066815 0.05
- 37.5779155831 0.9147035917 0.05
- 37.5977195439 0.9156754768 0.05
- 37.6175235047 0.9166120139 0.05
- 37.6373274655 0.9174066902 0.05
- 37.6571314263 0.9181234027 0.05
- 37.6769353871 0.9187520889 0.05
- 37.6967393479 0.9193014809 0.05
- 37.7165433087 0.9197672989 0.05
- 37.7363472695 0.9201367174 0.05
- 37.7561512302 0.9204440643 0.05
- 37.775955191 0.9206360825 0.05
- 37.7957591518 0.9207928077 0.05
- 37.8155631126 0.9208182458 0.05
- 37.8353670734 0.920764807 0.05
- 37.8551710342 0.9206414316 0.05
- 37.874974995 0.9204001239 0.05
- 37.8947789558 0.9200567413 0.05
- 37.9145829166 0.9196291821 0.05
- 37.9343868774 0.9190510037 0.05
- 37.9541908382 0.9183814472 0.05
- 37.973994799 0.917534718 0.05
- 37.9937987598 0.9165837832 0.05
- 38.0136027205 0.9154916519 0.05
- 38.0334066813 0.9142172535 0.05
- 38.0532106421 0.912777604 0.05
- 38.0730146029 0.9111499091 0.05
- 38.0928185637 0.9093792951 0.05
- 38.1126225245 0.9073697819 0.05
- 38.1324264853 0.9052206537 0.05
- 38.1522304461 0.9028767119 0.05
- 38.1720344069 0.9004056709 0.05
- 38.1918383677 0.8978298172 0.05
- 38.2116423285 0.8951641257 0.05
- 38.2314462893 0.8924435702 0.05
- 38.2512502501 0.8897320289 0.05
- 38.2710542108 0.8870746345 0.05
- 38.2908581716 0.8845144659 0.05
- 38.3106621324 0.882043828 0.05
- 38.3304660932 0.879669303 0.05
- 38.350270054 0.8773980214 0.05
- 38.3700740148 0.8751846412 0.05
- 38.3898779756 0.8729179286 0.05
- 38.4096819364 0.8705040485 0.05
- 38.4294858972 0.8679054506 0.05
- 38.449289858 0.8649758365 0.05
- 38.4690938188 0.8615568881 0.05
- 38.4888977796 0.8575790799 0.05
- 38.5087017403 0.8528797704 0.05
- 38.5285057011 0.8473482866 0.05
- 38.5483096619 0.8408251022 0.05
- 38.5681136227 0.8330684123 0.05
- 38.5879175835 0.8240115793 0.05
- 38.6077215443 0.8134642204 0.05
- 38.6275255051 0.8010119922 0.05
- 38.6473294659 0.7864195169 0.05
- 38.6671334267 0.7693455609 0.05
- 38.6869373875 0.749183969 0.05
- 38.7067413483 0.7253021233 0.05
- 38.7265453091 0.6969301394 0.05
- 38.7463492699 0.6628064068 0.05
- 38.7661532306 0.6224835218 0.05
- 38.7859571914 0.5747559762 0.05
- 38.8057611522 0.5188648591 0.05
- 38.825565113 0.4552659777 0.05
- 38.8453690738 0.3854933561 0.05
- 38.8651730346 0.3124408499 0.05
- 38.8849769954 0.2402169171 0.05
- 38.9047809562 0.1740854349 0.05
- 38.924584917 0.1182620148 0.05
- 38.9443888778 0.0750871637 0.05
- 38.9641928386 0.0448159927 0.05
- 38.9839967994 0.0254008136 0.05
- 39.0038007602 0.0139379842 0.05
- 39.0236047209 0.0075973 0.05
- 39.0434086817 0.0042315621 0.05
- 39.0632126425 0.0024974921 0.05
- 39.0830166033 0.0016174113 0.05
- 39.1028205641 0.0011888364 0.05
- 39.1226245249 0.0010080317 0.05
- 39.1424284857 0.0010015966 0.05
- 39.1622324465 0.0011597613 0.05
- 39.1820364073 0.0015532347 0.05
- 39.2018403681 0.0023408053 0.05
- 39.2216443289 0.003827812 0.05
- 39.2414482897 0.0065868107 0.05
- 39.2612522505 0.0115120431 0.05
- 39.2810562112 0.0198999671 0.05
- 39.300860172 0.0332067602 0.05
- 39.3206641328 0.0526925932 0.05
- 39.3404680936 0.0789559239 0.05
- 39.3602720544 0.1116580728 0.05
- 39.3800760152 0.1497837219 0.05
- 39.399879976 0.1919730728 0.05
- 39.4196839368 0.2367490223 0.05
- 39.4394878976 0.2834653308 0.05
- 39.4592918584 0.3310969523 0.05
- 39.4790958192 0.3794121638 0.05
- 39.49889978 0.4273604742 0.05
- 39.5187037407 0.4744398715 0.05
- 39.5385077015 0.5196643078 0.05
- 39.5583116623 0.562173231 0.05
- 39.5781156231 0.6009641006 0.05
- 39.5979195839 0.6359832708 0.05
- 39.6177235447 0.6665304586 0.05
- 39.6375275055 0.6929157629 0.05
- 39.6573314663 0.715343241 0.05
- 39.6771354271 0.7342025333 0.05
- 39.6969393879 0.75009852 0.05
- 39.7167433487 0.7635039647 0.05
- 39.7365473095 0.7747160756 0.05
- 39.7563512703 0.784172487 0.05
- 39.776155231 0.792193432 0.05
- 39.7959591918 0.7992096386 0.05
- 39.8157631526 0.805358676 0.05
- 39.8355671134 0.810838931 0.05
- 39.8553710742 0.8160541145 0.05
- 39.875175035 0.8210987421 0.05
- 39.8949789958 0.8261126866 0.05
- 39.9147829566 0.8311696273 0.05
- 39.9345869174 0.8363826468 0.05
- 39.9543908782 0.8417706098 0.05
- 39.974194839 0.8471653859 0.05
- 39.9939987998 0.8526925445 0.05
- 40.0138027606 0.8581682466 0.05
- 40.0336067213 0.8635192975 0.05
- 40.0534106821 0.8687405265 0.05
- 40.0732146429 0.8736603117 0.05
- 40.0930186037 0.8782740479 0.05
- 40.1128225645 0.882495964 0.05
- 40.1326265253 0.8863696686 0.05
- 40.1524304861 0.8897971379 0.05
- 40.1722344469 0.8928046291 0.05
- 40.1920384077 0.8953849189 0.05
- 40.2118423685 0.8975735286 0.05
- 40.2316463293 0.8992298123 0.05
- 40.2514502901 0.9004357966 0.05
- 40.2712542509 0.9011557002 0.05
- 40.2910582116 0.9013086019 0.05
- 40.3108621724 0.9009752947 0.05
- 40.3306661332 0.9001176266 0.05
- 40.350470094 0.8987984658 0.05
- 40.3702740548 0.8971444208 0.05
- 40.3900780156 0.8951959679 0.05
- 40.4098819764 0.8932415933 0.05
- 40.4296859372 0.8912883656 0.05
- 40.449489898 0.8895989336 0.05
- 40.4692938588 0.8883398558 0.05
- 40.4890978196 0.8876700757 0.05
- 40.5089017804 0.8876059617 0.05
- 40.5287057411 0.8881824292 0.05
- 40.5485097019 0.8894377761 0.05
- 40.5683136627 0.8912511107 0.05
- 40.5881176235 0.8935022593 0.05
- 40.6079215843 0.8960748745 0.05
- 40.6277255451 0.8988653215 0.05
- 40.6475295059 0.9017152627 0.05
- 40.6673334667 0.9044912099 0.05
- 40.6871374275 0.9071931331 0.05
- 40.7069413883 0.9096938592 0.05
- 40.7267453491 0.9120073755 0.05
- 40.7465493099 0.9140750567 0.05
- 40.7663532707 0.9159313627 0.05
- 40.7861572314 0.9175632403 0.05
- 40.8059611922 0.9189905715 0.05
- 40.825765153 0.9202086487 0.05
- 40.8455691138 0.9212590459 0.05
- 40.8653730746 0.9221567216 0.05
- 40.8851770354 0.922908946 0.05
- 40.9049809962 0.9235034129 0.05
- 40.924784957 0.9239368448 0.05
- 40.9445889178 0.9242505071 0.05
- 40.9643928786 0.9244377123 0.05
- 40.9841968394 0.9244732728 0.05
- 41.0040008002 0.9243504256 0.05
- 41.023804761 0.9240901606 0.05
- 41.0436087217 0.923681968 0.05
- 41.0634126825 0.923124128 0.05
- 41.0832166433 0.9223988746 0.05
- 41.1030206041 0.9215084427 0.05
- 41.1228245649 0.9204894244 0.05
- 41.1426285257 0.9193643281 0.05
- 41.1624324865 0.9181500845 0.05
- 41.1822364473 0.9169101029 0.05
- 41.2020404081 0.9156179385 0.05
- 41.2218443689 0.9142987883 0.05
- 41.2416483297 0.9130645555 0.05
- 41.2614522905 0.911918996 0.05
- 41.2812562513 0.9108374606 0.05
- 41.301060212 0.9098783323 0.05
- 41.3208641728 0.9089600943 0.05
- 41.3406681336 0.9081198597 0.05
- 41.3604720944 0.9072787102 0.05
- 41.3802760552 0.9064556745 0.05
- 41.400080016 0.9056337145 0.05
- 41.4198839768 0.9047814483 0.05
- 41.4396879376 0.9039151576 0.05
- 41.4594918984 0.9030300729 0.05
- 41.4792958592 0.9022768035 0.05
- 41.49909982 0.9016137737 0.05
- 41.5189037808 0.9010817699 0.05
- 41.5387077415 0.9006867104 0.05
- 41.5585117023 0.900311381 0.05
- 41.5783156631 0.8997738074 0.05
- 41.5981196239 0.8988068109 0.05
- 41.6179235847 0.8969932278 0.05
- 41.6377275455 0.8939072212 0.05
- 41.6575315063 0.8889337614 0.05
- 41.6773354671 0.8816924116 0.05
- 41.6971394279 0.8717236066 0.05
- 41.7169433887 0.8591102301 0.05
- 41.7367473495 0.8441869936 0.05
- 41.7565513103 0.8276550586 0.05
- 41.7763552711 0.8106914954 0.05
- 41.7961592318 0.7947107042 0.05
- 41.8159631926 0.7808755415 0.05
- 41.8357671534 0.7705983399 0.05
- 41.8555711142 0.7649556045 0.05
- 41.875375075 0.7644515497 0.05
- 41.8951790358 0.7692195007 0.05
- 41.9149829966 0.7786493245 0.05
- 41.9347869574 0.7919261702 0.05
- 41.9545909182 0.8079293479 0.05
- 41.974394879 0.8249983407 0.05
- 41.9941988398 0.8421870237 0.05
- 42.0140028006 0.8579496873 0.05
- 42.0338067614 0.8714523919 0.05
- 42.0536107221 0.8823348991 0.05
- 42.0734146829 0.8903084605 0.05
- 42.0932186437 0.8955920198 0.05
- 42.1130226045 0.8986748372 0.05
- 42.1328265653 0.9001011118 0.05
- 42.1526305261 0.9004784354 0.05
- 42.1724344869 0.9004109855 0.05
- 42.1922384477 0.9004007125 0.05
- 42.2120424085 0.9008033846 0.05
- 42.2318463693 0.9018347631 0.05
- 42.2516503301 0.9036831543 0.05
- 42.2714542909 0.9062731049 0.05
- 42.2912582517 0.9095080703 0.05
- 42.3110622124 0.9131372675 0.05
- 42.3308661732 0.9170300414 0.05
- 42.350670134 0.9208648415 0.05
- 42.3704740948 0.9245476079 0.05
- 42.3902780556 0.9278164104 0.05
- 42.4100820164 0.9305775148 0.05
- 42.4298859772 0.932759016 0.05
- 42.449689938 0.9342500394 0.05
- 42.4694938988 0.9350051408 0.05
- 42.4892978596 0.9349931799 0.05
- 42.5091018204 0.9341618849 0.05
- 42.5289057812 0.9325093615 0.05
- 42.5487097419 0.9300675054 0.05
- 42.5685137027 0.9269595288 0.05
- 42.5883176635 0.9233670933 0.05
- 42.6081216243 0.9195937055 0.05
- 42.6279255851 0.9159392194 0.05
- 42.6477295459 0.9127879697 0.05
- 42.6675335067 0.9105051397 0.05
- 42.6873374675 0.9094177373 0.05
- 42.7071414283 0.9096880173 0.05
- 42.7269453891 0.9112816704 0.05
- 42.7467493499 0.9141805136 0.05
- 42.7665533107 0.9180870288 0.05
- 42.7863572715 0.9226502016 0.05
- 42.8061612322 0.9275133592 0.05
- 42.825965193 0.9323527893 0.05
- 42.8457691538 0.9368946148 0.05
- 42.8655731146 0.9408560798 0.05
- 42.8853770754 0.9442185336 0.05
- 42.9051810362 0.9469161441 0.05
- 42.924984997 0.9489912351 0.05
- 42.9447889578 0.9505386706 0.05
- 42.9645929186 0.9516527839 0.05
- 42.9843968794 0.9524019474 0.05
- 43.0042008402 0.9528678749 0.05
- 43.024004801 0.9530849495 0.05
- 43.0438087618 0.9530582734 0.05
- 43.0636127225 0.9527705945 0.05
- 43.0834166833 0.9521513642 0.05
- 43.1032206441 0.951111769 0.05
- 43.1230246049 0.9495151442 0.05
- 43.1428285657 0.9471998901 0.05
- 43.1626325265 0.9439545079 0.05
- 43.1824364873 0.9396171123 0.05
- 43.2022404481 0.934035885 0.05
- 43.2220444089 0.9271506033 0.05
- 43.2418483697 0.9190561618 0.05
- 43.2616523305 0.9099785046 0.05
- 43.2814562913 0.9004506764 0.05
- 43.3012602521 0.8909923616 0.05
- 43.3210642128 0.8822926252 0.05
- 43.3408681736 0.8749932977 0.05
- 43.3606721344 0.869812831 0.05
- 43.3804760952 0.8671797517 0.05
- 43.400280056 0.8673106292 0.05
- 43.4200840168 0.8701265428 0.05
- 43.4398879776 0.8753097621 0.05
- 43.4596919384 0.882377459 0.05
- 43.4794958992 0.8906271316 0.05
- 43.49929986 0.8993685632 0.05
- 43.5191038208 0.9081368774 0.05
- 43.5389077816 0.9161942991 0.05
- 43.5587117423 0.9233188378 0.05
- 43.5785157031 0.9292138205 0.05
- 43.5983196639 0.9338561021 0.05
- 43.6181236247 0.9373064821 0.05
- 43.6379275855 0.9396716484 0.05
- 43.6577315463 0.9410822899 0.05
- 43.6775355071 0.9416341062 0.05
- 43.6973394679 0.9414832039 0.05
- 43.7171434287 0.9406653971 0.05
- 43.7369473895 0.9392711139 0.05
- 43.7567513503 0.9373549954 0.05
- 43.7765553111 0.9349601382 0.05
- 43.7963592719 0.9321844157 0.05
- 43.8161632326 0.9291319659 0.05
- 43.8359671934 0.9259707427 0.05
- 43.8557711542 0.9227674374 0.05
- 43.875575115 0.9198155165 0.05
- 43.8953790758 0.9172789744 0.05
- 43.9151830366 0.9152970129 0.05
- 43.9349869974 0.9140688436 0.05
- 43.9547909582 0.913589314 0.05
- 43.974594919 0.9139751863 0.05
- 43.9943988798 0.9151270553 0.05
- 44.0142028406 0.9169257421 0.05
- 44.0340068014 0.9192744353 0.05
- 44.0538107622 0.9219563207 0.05
- 44.0736147229 0.9247905314 0.05
- 44.0934186837 0.9276462943 0.05
- 44.1132226445 0.9303335441 0.05
- 44.1330266053 0.9327701365 0.05
- 44.1528305661 0.9348586193 0.05
- 44.1726345269 0.936531743 0.05
- 44.1924384877 0.9378142075 0.05
- 44.2122424485 0.9386545791 0.05
- 44.2320464093 0.9390804064 0.05
- 44.2518503701 0.9390476745 0.05
- 44.2716543309 0.9385874378 0.05
- 44.2914582917 0.9376239161 0.05
- 44.3112622525 0.9361269411 0.05
- 44.3310662132 0.9340477868 0.05
- 44.350870174 0.9313039507 0.05
- 44.3706741348 0.9278060366 0.05
- 44.3904780956 0.9235523143 0.05
- 44.4102820564 0.9184798627 0.05
- 44.4300860172 0.9126979801 0.05
- 44.449889978 0.9062021454 0.05
- 44.4696939388 0.8993283329 0.05
- 44.4894978996 0.892347948 0.05
- 44.5093018604 0.8855104915 0.05
- 44.5291058212 0.8792181529 0.05
- 44.548909782 0.8739532686 0.05
- 44.5687137427 0.8699932128 0.05
- 44.5885177035 0.8675648405 0.05
- 44.6083216643 0.8669161776 0.05
- 44.6281256251 0.8679951665 0.05
- 44.6479295859 0.8705327194 0.05
- 44.6677335467 0.874458515 0.05
- 44.6875375075 0.8793167622 0.05
- 44.7073414683 0.8847488457 0.05
- 44.7271454291 0.8902777237 0.05
- 44.7469493899 0.8957759235 0.05
- 44.7667533507 0.9008938321 0.05
- 44.7865573115 0.9053752185 0.05
- 44.8063612723 0.9091897101 0.05
- 44.826165233 0.9123648104 0.05
- 44.8459691938 0.9148591854 0.05
- 44.8657731546 0.9168654198 0.05
- 44.8855771154 0.918429075 0.05
- 44.9053810762 0.9196598906 0.05
- 44.925185037 0.9207397778 0.05
- 44.9449889978 0.9217025696 0.05
- 44.9647929586 0.9225905513 0.05
- 44.9845969194 0.9235640076 0.05
- 45.0044008802 0.9245792936 0.05
- 45.024204841 0.9256750618 0.05
- 45.0440088018 0.9269243253 0.05
- 45.0638127626 0.9282548655 0.05
- 45.0836167233 0.9296809711 0.05
- 45.1034206841 0.9312062794 0.05
- 45.1232246449 0.9327743026 0.05
- 45.1430286057 0.9344195376 0.05
- 45.1628325665 0.9360711065 0.05
- 45.1826365273 0.9377356913 0.05
- 45.2024404881 0.9393925841 0.05
- 45.2222444489 0.9410169969 0.05
- 45.2420484097 0.9425800944 0.05
- 45.2618523705 0.9440836 0.05
- 45.2816563313 0.9455072098 0.05
- 45.3014602921 0.9468463466 0.05
- 45.3212642529 0.9480896715 0.05
- 45.3410682136 0.9492305697 0.05
- 45.3608721744 0.9502704653 0.05
- 45.3806761352 0.9512065507 0.05
- 45.400480096 0.9520402177 0.05
- 45.4202840568 0.952767555 0.05
- 45.4400880176 0.9533870919 0.05
- 45.4598919784 0.9538912182 0.05
- 45.4796959392 0.9542801423 0.05
- 45.4994999 0.9545234401 0.05
- 45.5193038608 0.9546149685 0.05
- 45.5391078216 0.9545391388 0.05
- 45.5589117824 0.9542741819 0.05
- 45.5787157431 0.9537996576 0.05
- 45.5985197039 0.95309846 0.05
- 45.6183236647 0.9521769511 0.05
- 45.6381276255 0.9510396712 0.05
- 45.6579315863 0.9497373345 0.05
- 45.6777355471 0.9483583864 0.05
- 45.6975395079 0.9469497791 0.05
- 45.7173434687 0.9456397358 0.05
- 45.7371474295 0.9445565537 0.05
- 45.7569513903 0.9438059698 0.05
- 45.7767553511 0.9434718542 0.05
- 45.7965593119 0.9436384556 0.05
- 45.8163632727 0.94430831 0.05
- 45.8361672334 0.9454483841 0.05
- 45.8559711942 0.9470004061 0.05
- 45.875775155 0.9488555125 0.05
- 45.8955791158 0.950899665 0.05
- 45.9153830766 0.9529980789 0.05
- 45.9351870374 0.9550458129 0.05
- 45.9549909982 0.9569735299 0.05
- 45.974794959 0.9586790675 0.05
- 45.9945989198 0.9601544644 0.05
- 46.0144028806 0.9613861249 0.05
- 46.0342068414 0.9623877411 0.05
- 46.0540108022 0.9631753413 0.05
- 46.073814763 0.9637922852 0.05
- 46.0936187237 0.9642609008 0.05
- 46.1134226845 0.9646162455 0.05
- 46.1332266453 0.9648814998 0.05
- 46.1530306061 0.9650761366 0.05
- 46.1728345669 0.9652157096 0.05
- 46.1926385277 0.9653088832 0.05
- 46.2124424885 0.9653633854 0.05
- 46.2322464493 0.9653855359 0.05
- 46.2520504101 0.9653689498 0.05
- 46.2718543709 0.9653137826 0.05
- 46.2916583317 0.9652161476 0.05
- 46.3114622925 0.9650789122 0.05
- 46.3312662533 0.9648887822 0.05
- 46.351070214 0.9646169132 0.05
- 46.3708741748 0.9642540222 0.05
- 46.3906781356 0.9637711869 0.05
- 46.4104820964 0.9631441714 0.05
- 46.4302860572 0.9623132292 0.05
- 46.450090018 0.9612210506 0.05
- 46.4698939788 0.9598135272 0.05
- 46.4896979396 0.9580178721 0.05
- 46.5095019004 0.9557350491 0.05
- 46.5293058612 0.9528986153 0.05
- 46.549109822 0.9494175094 0.05
- 46.5689137828 0.9452563994 0.05
- 46.5887177435 0.9403680719 0.05
- 46.6085217043 0.9348129568 0.05
- 46.6283256651 0.9285764682 0.05
- 46.6481296259 0.9218085186 0.05
- 46.6679335867 0.9146776498 0.05
- 46.6877375475 0.907381376 0.05
- 46.7075415083 0.9000948777 0.05
- 46.7273454691 0.8929150803 0.05
- 46.7471494299 0.8861279508 0.05
- 46.7669533907 0.8797197105 0.05
- 46.7867573515 0.8738486428 0.05
- 46.8065613123 0.8685083993 0.05
- 46.8263652731 0.8636973339 0.05
- 46.8461692338 0.8593892478 0.05
- 46.8659731946 0.8556634782 0.05
- 46.8857771554 0.8525366749 0.05
- 46.9055811162 0.8500679238 0.05
- 46.925385077 0.8484252081 0.05
- 46.9451890378 0.8478378381 0.05
- 46.9649929986 0.8484297384 0.05
- 46.9847969594 0.85029392 0.05
- 47.0046009202 0.8536075259 0.05
- 47.024404881 0.8582421338 0.05
- 47.0442088418 0.8643147765 0.05
- 47.0640128026 0.8714688174 0.05
- 47.0838167634 0.8794670505 0.05
- 47.1036207241 0.8880059769 0.05
- 47.1234246849 0.896721118 0.05
- 47.1432286457 0.9054168416 0.05
- 47.1630326065 0.9136678035 0.05
- 47.1828365673 0.9213536357 0.05
- 47.2026405281 0.9282099921 0.05
- 47.2224444889 0.9342249922 0.05
- 47.2422484497 0.9393687361 0.05
- 47.2620524105 0.9436943773 0.05
- 47.2818563713 0.9472556442 0.05
- 47.3016603321 0.9501588544 0.05
- 47.3214642929 0.952502772 0.05
- 47.3412682537 0.954366167 0.05
- 47.3610722144 0.955854902 0.05
- 47.3808761752 0.9570336705 0.05
- 47.400680136 0.9579618599 0.05
- 47.4204840968 0.9586883761 0.05
- 47.4402880576 0.9592537633 0.05
- 47.4600920184 0.9596770177 0.05
- 47.4798959792 0.9599765449 0.05
- 47.49969994 0.9601660242 0.05
- 47.5195039008 0.9602468937 0.05
- 47.5393078616 0.9602139821 0.05
- 47.5591118224 0.9600482503 0.05
- 47.5789157832 0.9597291665 0.05
- 47.5987197439 0.9592145149 0.05
- 47.6185237047 0.9584519943 0.05
- 47.6383276655 0.9573450543 0.05
- 47.6581316263 0.9558080882 0.05
- 47.6779355871 0.9537073442 0.05
- 47.6977395479 0.9508700799 0.05
- 47.7175435087 0.9471907387 0.05
- 47.7373474695 0.9424907176 0.05
- 47.7571514303 0.9366857416 0.05
- 47.7769553911 0.9297459736 0.05
- 47.7967593519 0.921721706 0.05
- 47.8165633127 0.9127987116 0.05
- 47.8363672735 0.9034204064 0.05
- 47.8561712342 0.8939516646 0.05
- 47.875975195 0.8849171308 0.05
- 47.8957791558 0.8768516701 0.05
- 47.9155831166 0.8702389628 0.05
- 47.9353870774 0.865579431 0.05
- 47.9551910382 0.8629178623 0.05
- 47.974994999 0.862436985 0.05
- 47.9947989598 0.8639203839 0.05
- 48.0146029206 0.8670011056 0.05
- 48.0344068814 0.8713039435 0.05
- 48.0542108422 0.8760809693 0.05
- 48.074014803 0.8810139133 0.05
- 48.0938187638 0.8854613772 0.05
- 48.1136227245 0.8891171875 0.05
- 48.1334266853 0.8917399591 0.05
- 48.1532306461 0.893236103 0.05
- 48.1730346069 0.893706076 0.05
- 48.1928385677 0.8933567294 0.05
- 48.2126425285 0.8924870172 0.05
- 48.2324464893 0.89132486 0.05
- 48.2522504501 0.890265992 0.05
- 48.2720544109 0.8895957188 0.05
- 48.2918583717 0.8894849281 0.05
- 48.3116623325 0.8902115571 0.05
- 48.3314662933 0.8918084936 0.05
- 48.3512702541 0.8942858521 0.05
- 48.3710742148 0.897576949 0.05
- 48.3908781756 0.9015936963 0.05
- 48.4106821364 0.9060651922 0.05
- 48.4304860972 0.9107698165 0.05
- 48.450290058 0.915486186 0.05
- 48.4700940188 0.9200038269 0.05
- 48.4898979796 0.9239953361 0.05
- 48.5097019404 0.9272208185 0.05
- 48.5295059012 0.9294402107 0.05
- 48.549309862 0.9305052316 0.05
- 48.5691138228 0.9302898789 0.05
- 48.5889177836 0.9286672975 0.05
- 48.6087217443 0.9257273463 0.05
- 48.6285257051 0.9215004843 0.05
- 48.6483296659 0.9162715041 0.05
- 48.6681336267 0.9102237505 0.05
- 48.6879375875 0.9038294594 0.05
- 48.7077415483 0.8974965453 0.05
- 48.7275455091 0.8915642938 0.05
- 48.7473494699 0.8864951507 0.05
- 48.7671534307 0.8826035226 0.05
- 48.7869573915 0.880033335 0.05
- 48.8067613523 0.8788355959 0.05
- 48.8265653131 0.8788130187 0.05
- 48.8463692739 0.8797669571 0.05
- 48.8661732346 0.8811563875 0.05
- 48.8859771954 0.8825920726 0.05
- 48.9057811562 0.8834513966 0.05
- 48.925585117 0.883287056 0.05
- 48.9453890778 0.8817534629 0.05
- 48.9651930386 0.8786244298 0.05
- 48.9849969994 0.8738275371 0.05
- 49.0048009602 0.8676012087 0.05
- 49.024604921 0.8602926177 0.05
- 49.0444088818 0.8523050409 0.05
- 49.0642128426 0.8443981015 0.05
- 49.0840168034 0.8369542146 0.05
- 49.1038207642 0.8307029364 0.05
- 49.1236247249 0.826006038 0.05
- 49.1434286857 0.8231273205 0.05
- 49.1632326465 0.8220792428 0.05
- 49.1830366073 0.8228475239 0.05
- 49.2028405681 0.8248292481 0.05
- 49.2226445289 0.8275875429 0.05
- 49.2424484897 0.8306560895 0.05
- 49.2622524505 0.8332906432 0.05
- 49.2820564113 0.8347750873 0.05
- 49.3018603721 0.8351738468 0.05
- 49.3216643329 0.8344706146 0.05
- 49.3414682937 0.8328297061 0.05
- 49.3612722545 0.8308153942 0.05
- 49.3810762152 0.8290549732 0.05
- 49.400880176 0.8284482406 0.05
- 49.4206841368 0.8295624852 0.05
- 49.4404880976 0.8328912254 0.05
- 49.4602920584 0.8385392417 0.05
- 49.4800960192 0.8465810093 0.05
- 49.49989998 0.8566924143 0.05
- 49.5197039408 0.8683430535 0.05
- 49.5395079016 0.8806727858 0.05
- 49.5593118624 0.893186736 0.05
- 49.5791158232 0.9053244761 0.05
- 49.598919784 0.9164531115 0.05
- 49.6187237447 0.9261916875 0.05
- 49.6385277055 0.9344599202 0.05
- 49.6583316663 0.9411952281 0.05
- 49.6781356271 0.9465431404 0.05
- 49.6979395879 0.9506748083 0.05
- 49.7177435487 0.9537601649 0.05
- 49.7375475095 0.9560222006 0.05
- 49.7573514703 0.9576232364 0.05
- 49.7771554311 0.9586931947 0.05
- 49.7969593919 0.9593344604 0.05
- 49.8167633527 0.9595827706 0.05
- 49.8365673135 0.9594495451 0.05
- 49.8563712743 0.9589090711 0.05
- 49.876175235 0.9579497338 0.05
- 49.8959791958 0.956497653 0.05
- 49.9157831566 0.9545524352 0.05
- 49.9355871174 0.9521063892 0.05
- 49.9553910782 0.9491819829 0.05
- 49.975195039 0.9458813449 0.05
- 49.9949989998 0.9423471013 0.05
- 50.0148029606 0.9387633912 0.05
- 50.0346069214 0.9353045385 0.05
- 50.0544108822 0.9322034234 0.05
- 50.074214843 0.929624093 0.05
- 50.0940188038 0.927680013 0.05
- 50.1138227646 0.9263878928 0.05
- 50.1336267253 0.9257169321 0.05
- 50.1534306861 0.9253917114 0.05
- 50.1732346469 0.9251762794 0.05
- 50.1930386077 0.9247626242 0.05
- 50.2128425685 0.9237135617 0.05
- 50.2326465293 0.9217366909 0.05
- 50.2524504901 0.9185294935 0.05
- 50.2722544509 0.9139124183 0.05
- 50.2920584117 0.907902094 0.05
- 50.3118623725 0.9006597849 0.05
- 50.3316663333 0.8925679906 0.05
- 50.3514702941 0.8841019367 0.05
- 50.3712742549 0.8757793933 0.05
- 50.3910782156 0.868313246 0.05
- 50.4108821764 0.8621813759 0.05
- 50.4306861372 0.8580016114 0.05
- 50.450490098 0.8558941887 0.05
- 50.4702940588 0.8561325713 0.05
- 50.4900980196 0.8586362664 0.05
- 50.5099019804 0.8631996563 0.05
- 50.5297059412 0.8693548091 0.05
- 50.549509902 0.8767184841 0.05
- 50.5693138628 0.8846337356 0.05
- 50.5891178236 0.8927278254 0.05
- 50.6089217844 0.9005450807 0.05
- 50.6287257451 0.9077210221 0.05
- 50.6485297059 0.9139786213 0.05
- 50.6683336667 0.9191844943 0.05
- 50.6881376275 0.9233816431 0.05
- 50.7079415883 0.9265451208 0.05
- 50.7277455491 0.9287494331 0.05
- 50.7475495099 0.930151899 0.05
- 50.7673534707 0.930760525 0.05
- 50.7871574315 0.9306915587 0.05
- 50.8069613923 0.9300001982 0.05
- 50.8267653531 0.9287084091 0.05
- 50.8465693139 0.9267620885 0.05
- 50.8663732747 0.9242327285 0.05
- 50.8861772354 0.9209680934 0.05
- 50.9059811962 0.9169566385 0.05
- 50.925785157 0.912048851 0.05
- 50.9455891178 0.9062198948 0.05
- 50.9653930786 0.8993288911 0.05
- 50.9851970394 0.8913006546 0.05
- 51.0050010002 0.8821469804 0.05
- 51.024804961 0.871767123 0.05
- 51.0446089218 0.8602576968 0.05
- 51.0644128826 0.8477560879 0.05
- 51.0842168434 0.8343352468 0.05
- 51.1040208042 0.8204362251 0.05
- 51.123824765 0.8062570372 0.05
- 51.1436287257 0.7921567024 0.05
- 51.1634326865 0.778521295 0.05
- 51.1832366473 0.7659813784 0.05
- 51.2030406081 0.754704143 0.05
- 51.2228445689 0.7453346111 0.05
- 51.2426485297 0.7383701735 0.05
- 51.2624524905 0.7338583653 0.05
- 51.2822564513 0.7322568607 0.05
- 51.3020604121 0.7334769928 0.05
- 51.3218643729 0.7377575197 0.05
- 51.3416683337 0.7447626205 0.05
- 51.3614722945 0.7541326499 0.05
- 51.3812762553 0.7656432793 0.05
- 51.401080216 0.778516949 0.05
- 51.4208841768 0.7921084639 0.05
- 51.4406881376 0.8057452929 0.05
- 51.4604920984 0.8189804876 0.05
- 51.4802960592 0.8313404029 0.05
- 51.50010002 0.8421776102 0.05
- 51.5199039808 0.8516901104 0.05
- 51.5397079416 0.8596443057 0.05
- 51.5595119024 0.8662649732 0.05
- 51.5793158632 0.871744978 0.05
- 51.599119824 0.8764674307 0.05
- 51.6189237848 0.8807173291 0.05
- 51.6387277455 0.8846504247 0.05
- 51.6585317063 0.8885020723 0.05
- 51.6783356671 0.8923335969 0.05
- 51.6981396279 0.8960323355 0.05
- 51.7179435887 0.8995487071 0.05
- 51.7377475495 0.9028192806 0.05
- 51.7575515103 0.9056108617 0.05
- 51.7773554711 0.907855327 0.05
- 51.7971594319 0.9094339902 0.05
- 51.8169633927 0.9103440664 0.05
- 51.8367673535 0.9105411389 0.05
- 51.8565713143 0.9100486368 0.05
- 51.8763752751 0.9088702645 0.05
- 51.8961792358 0.9070612325 0.05
- 51.9159831966 0.9047025434 0.05
- 51.9357871574 0.9018370426 0.05
- 51.9555911182 0.8985555293 0.05
- 51.975395079 0.8948830658 0.05
- 51.9951990398 0.8908269503 0.05
- 52.0150030006 0.8866250533 0.05
- 52.0348069614 0.8822466697 0.05
- 52.0546109222 0.8777950702 0.05
- 52.074414883 0.873337697 0.05
- 52.0942188438 0.8690679803 0.05
- 52.1140228046 0.864958602 0.05
- 52.1338267654 0.8612413854 0.05
- 52.1536307261 0.8580787772 0.05
- 52.1734346869 0.8554492341 0.05
- 52.1932386477 0.8535193432 0.05
- 52.2130426085 0.8524074021 0.05
- 52.2328465693 0.8521706883 0.05
- 52.2526505301 0.8526961283 0.05
- 52.2724544909 0.8540668362 0.05
- 52.2922584517 0.8563151411 0.05
- 52.3120624125 0.8593533835 0.05
- 52.3318663733 0.8630771899 0.05
- 52.3516703341 0.8673963057 0.05
- 52.3714742949 0.8722062859 0.05
- 52.3912782557 0.8773770444 0.05
- 52.4110822164 0.8827906083 0.05
- 52.4308861772 0.8882706043 0.05
- 52.450690138 0.8937765517 0.05
- 52.4704940988 0.8993326143 0.05
- 52.4902980596 0.9046588581 0.05
- 52.5101020204 0.9097825314 0.05
- 52.5299059812 0.9146485742 0.05
- 52.549709942 0.9192013059 0.05
- 52.5695139028 0.9234207261 0.05
- 52.5893178636 0.9273010486 0.05
- 52.6091218244 0.9308736743 0.05
- 52.6289257852 0.9341070568 0.05
- 52.6487297459 0.9370285369 0.05
- 52.6685337067 0.9396843 0.05
- 52.6883376675 0.9420757345 0.05
- 52.7081416283 0.9442251458 0.05
- 52.7279455891 0.9461928487 0.05
- 52.7477495499 0.9479900185 0.05
- 52.7675535107 0.9496341797 0.05
- 52.7873574715 0.9511485025 0.05
- 52.8071614323 0.9525450806 0.05
- 52.8269653931 0.9538272637 0.05
- 52.8467693539 0.9550065147 0.05
- 52.8665733147 0.9560845765 0.05
- 52.8863772755 0.9570547256 0.05
- 52.9061812362 0.9579125185 0.05
- 52.925985197 0.9586612978 0.05
- 52.9457891578 0.9592962237 0.05
- 52.9655931186 0.9598142194 0.05
- 52.9853970794 0.9602149399 0.05
- 53.0052010402 0.960498885 0.05
- 53.025005001 0.9606575907 0.05
- 53.0448089618 0.9606808037 0.05
- 53.0646129226 0.9605713733 0.05
- 53.0844168834 0.9602756645 0.05
- 53.1042208442 0.9597946213 0.05
- 53.124024805 0.9590795938 0.05
- 53.1438287658 0.9580850791 0.05
- 53.1636327265 0.9567730014 0.05
- 53.1834366873 0.9550865707 0.05
- 53.2032406481 0.9529836435 0.05
- 53.2230446089 0.9504907178 0.05
- 53.2428485697 0.9475490572 0.05
- 53.2626525305 0.9442563414 0.05
- 53.2824564913 0.9406840186 0.05
- 53.3022604521 0.9369597787 0.05
- 53.3220644129 0.933229339 0.05
- 53.3418683737 0.9296863628 0.05
- 53.3616723345 0.9265046625 0.05
- 53.3814762953 0.9239510456 0.05
- 53.4012802561 0.9221203596 0.05
- 53.4210842168 0.9211762497 0.05
- 53.4408881776 0.9211731999 0.05
- 53.4606921384 0.9220963261 0.05
- 53.4804960992 0.9238372147 0.05
- 53.50030006 0.9263415676 0.05
- 53.5201040208 0.9293927068 0.05
- 53.5399079816 0.9327962375 0.05
- 53.5597119424 0.936336442 0.05
- 53.5795159032 0.9399270944 0.05
- 53.599319864 0.9433579626 0.05
- 53.6191238248 0.946546676 0.05
- 53.6389277856 0.9493852749 0.05
- 53.6587317463 0.9518648465 0.05
- 53.6785357071 0.9539809486 0.05
- 53.6983396679 0.9557173023 0.05
- 53.7181436287 0.9571513925 0.05
- 53.7379475895 0.9582896782 0.05
- 53.7577515503 0.9591893145 0.05
- 53.7775555111 0.95987728 0.05
- 53.7973594719 0.9603879351 0.05
- 53.8171634327 0.9607378755 0.05
- 53.8369673935 0.9609525165 0.05
- 53.8567713543 0.9610400334 0.05
- 53.8765753151 0.9610172116 0.05
- 53.8963792759 0.9608859495 0.05
- 53.9161832366 0.9606424623 0.05
- 53.9359871974 0.9602992216 0.05
- 53.9557911582 0.959857352 0.05
- 53.975595119 0.9593244605 0.05
- 53.9953990798 0.9587262601 0.05
- 54.0152030406 0.9580819915 0.05
- 54.0350070014 0.9574198524 0.05
- 54.0548109622 0.9567959127 0.05
- 54.074614923 0.9562449984 0.05
- 54.0944188838 0.955819878 0.05
- 54.1142228446 0.9555765386 0.05
- 54.1340268054 0.9555439639 0.05
- 54.1538307662 0.9557328305 0.05
- 54.1736347269 0.9561759704 0.05
- 54.1934386877 0.9568322458 0.05
- 54.2132426485 0.9576726143 0.05
- 54.2330466093 0.9586637814 0.05
- 54.2528505701 0.9597341287 0.05
- 54.2726545309 0.9608311616 0.05
- 54.2924584917 0.9618841968 0.05
- 54.3122624525 0.9628391935 0.05
- 54.3320664133 0.9636615211 0.05
- 54.3518703741 0.9643344441 0.05
- 54.3716743349 0.9648253602 0.05
- 54.3914782957 0.9651343536 0.05
- 54.4112822565 0.9652741335 0.05
- 54.4310862172 0.9652587138 0.05
- 54.450890178 0.9651079823 0.05
- 54.4706941388 0.9648217071 0.05
- 54.4904980996 0.9644158636 0.05
- 54.5103020604 0.9638942747 0.05
- 54.5301060212 0.9632597422 0.05
- 54.549909982 0.9625002297 0.05
- 54.5697139428 0.9615838708 0.05
- 54.5895179036 0.9604961373 0.05
- 54.6093218644 0.9591917434 0.05
- 54.6291258252 0.9576217809 0.05
- 54.648929786 0.9556908439 0.05
- 54.6687337467 0.9533213409 0.05
- 54.6885377075 0.9503890947 0.05
- 54.7083416683 0.9467635079 0.05
- 54.7281456291 0.9423265998 0.05
- 54.7479495899 0.9368477055 0.05
- 54.7677535507 0.9302297828 0.05
- 54.7875575115 0.9222256471 0.05
- 54.8073614723 0.912768967 0.05
- 54.8271654331 0.9016405852 0.05
- 54.8469693939 0.8888481426 0.05
- 54.8667733547 0.8742744313 0.05
- 54.8865773155 0.8582232375 0.05
- 54.9063812763 0.8406927061 0.05
- 54.926185237 0.8222222379 0.05
- 54.9459891978 0.8033099192 0.05
- 54.9657931586 0.784509546 0.05
- 54.9855971194 0.7665984284 0.05
- 55.0054010802 0.7503371516 0.05
- 55.025205041 0.7366960593 0.05
- 55.0450090018 0.726327399 0.05
- 55.0648129626 0.7199286815 0.05
- 55.0846169234 0.7178130403 0.05
- 55.1044208842 0.7202443001 0.05
- 55.124224845 0.7274372289 0.05
- 55.1440288058 0.7388409936 0.05
- 55.1638327666 0.753978957 0.05
- 55.1836367273 0.7721991361 0.05
- 55.2034406881 0.7922826353 0.05
- 55.2232446489 0.813403944 0.05
- 55.2430486097 0.8345816404 0.05
- 55.2628525705 0.8546619983 0.05
- 55.2826565313 0.8730129858 0.05
- 55.3024604921 0.889141835 0.05
- 55.3222644529 0.9025934515 0.05
- 55.3420684137 0.9134540431 0.05
- 55.3618723745 0.9217641601 0.05
- 55.3816763353 0.9277621605 0.05
- 55.4014802961 0.9317326345 0.05
- 55.4212842569 0.9339854291 0.05
- 55.4410882176 0.934743068 0.05
- 55.4608921784 0.9342451498 0.05
- 55.4806961392 0.932643871 0.05
- 55.5005001 0.9300415091 0.05
- 55.5203040608 0.9265562565 0.05
- 55.5401080216 0.9221669816 0.05
- 55.5599119824 0.9169543363 0.05
- 55.5797159432 0.9109452066 0.05
- 55.599519904 0.9041989023 0.05
- 55.6193238648 0.8967318993 0.05
- 55.6391278256 0.8887164189 0.05
- 55.6589317864 0.8802403995 0.05
- 55.6787357471 0.8716172021 0.05
- 55.6985397079 0.8629654776 0.05
- 55.7183436687 0.8543677564 0.05
- 55.7381476295 0.846301954 0.05
- 55.7579515903 0.8387670785 0.05
- 55.7777555511 0.8320973847 0.05
- 55.7975595119 0.8262615811 0.05
- 55.8173634727 0.8215542125 0.05
- 55.8371674335 0.8180169722 0.05
- 55.8569713943 0.8154291667 0.05
- 55.8767753551 0.8138260621 0.05
- 55.8965793159 0.8131009691 0.05
- 55.9163832767 0.8132061774 0.05
- 55.9361872374 0.8139180161 0.05
- 55.9559911982 0.8153236963 0.05
- 55.975795159 0.8172160326 0.05
- 55.9955991198 0.8195254845 0.05
- 56.0154030806 0.8222774641 0.05
- 56.0352070414 0.8253932607 0.05
- 56.0550110022 0.8287728103 0.05
- 56.074814963 0.8321757681 0.05
- 56.0946189238 0.8356308788 0.05
- 56.1144228846 0.8387374737 0.05
- 56.1342268454 0.8412184769 0.05
- 56.1540308062 0.8426351962 0.05
- 56.173834767 0.8425585025 0.05
- 56.1936387277 0.8405087337 0.05
- 56.2134426885 0.8361646401 0.05
- 56.2332466493 0.8292071189 0.05
- 56.2530506101 0.8194303331 0.05
- 56.2728545709 0.8068497827 0.05
- 56.2926585317 0.7916892722 0.05
- 56.3124624925 0.7742402219 0.05
- 56.3322664533 0.755347789 0.05
- 56.3520704141 0.7359269247 0.05
- 56.3718743749 0.7167330382 0.05
- 56.3916783357 0.6988055248 0.05
- 56.4114822965 0.6831080071 0.05
- 56.4312862573 0.6705946327 0.05
- 56.451090218 0.6618380201 0.05
- 56.4708941788 0.65742441 0.05
- 56.4906981396 0.6577039138 0.05
- 56.5105021004 0.6625246631 0.05
- 56.5303060612 0.6718546832 0.05
- 56.550110022 0.6852424321 0.05
- 56.5699139828 0.7018902982 0.05
- 56.5897179436 0.7215973597 0.05
- 56.6095219044 0.7429740257 0.05
- 56.6293258652 0.7651430065 0.05
- 56.649129826 0.7876937427 0.05
- 56.6689337868 0.8095750769 0.05
- 56.6887377475 0.8300486785 0.05
- 56.7085417083 0.8487847736 0.05
- 56.7283456691 0.86554126 0.05
- 56.7481496299 0.8801645508 0.05
- 56.7679535907 0.8926765382 0.05
- 56.7877575515 0.9033009738 0.05
- 56.8075615123 0.9121760906 0.05
- 56.8273654731 0.9195662124 0.05
- 56.8471694339 0.9257412746 0.05
- 56.8669733947 0.930860844 0.05
- 56.8867773555 0.9351400756 0.05
- 56.9065813163 0.9387760176 0.05
- 56.9263852771 0.9417989371 0.05
- 56.9461892378 0.9443946147 0.05
- 56.9659931986 0.9466419259 0.05
- 56.9857971594 0.9485596258 0.05
- 57.0056011202 0.9502480029 0.05
- 57.025405081 0.9517377114 0.05
- 57.0452090418 0.9530375249 0.05
- 57.0650130026 0.9541931016 0.05
- 57.0848169634 0.9552010702 0.05
- 57.1046209242 0.9560817515 0.05
- 57.124424885 0.9568404941 0.05
- 57.1442288458 0.9574763563 0.05
- 57.1640328066 0.9579626867 0.05
- 57.1838367674 0.9582905456 0.05
- 57.2036407281 0.9584525124 0.05
- 57.2234446889 0.9584175348 0.05
- 57.2432486497 0.9581364166 0.05
- 57.2630526105 0.9575883735 0.05
- 57.2828565713 0.9567397286 0.05
- 57.3026605321 0.9555520339 0.05
- 57.3224644929 0.9539989819 0.05
- 57.3422684537 0.9520700019 0.05
- 57.3620724145 0.9497684054 0.05
- 57.3818763753 0.9471011196 0.05
- 57.4016803361 0.9441072361 0.05
- 57.4214842969 0.9408524753 0.05
- 57.4412882577 0.9373777014 0.05
- 57.4610922184 0.9337514662 0.05
- 57.4808961792 0.9300910431 0.05
- 57.50070014 0.9264982317 0.05
- 57.5205041008 0.9229525935 0.05
- 57.5403080616 0.9195751121 0.05
- 57.5601120224 0.916418153 0.05
- 57.5799159832 0.9134187999 0.05
- 57.599719944 0.910689224 0.05
- 57.6195239048 0.9081495045 0.05
- 57.6393278656 0.9058015491 0.05
- 57.6591318264 0.9036392867 0.05
- 57.6789357872 0.9015259073 0.05
- 57.6987397479 0.8994777775 0.05
- 57.7185437087 0.8973911773 0.05
- 57.7383476695 0.895234095 0.05
- 57.7581516303 0.8928070171 0.05
- 57.7779555911 0.8900580888 0.05
- 57.7977595519 0.8868248819 0.05
- 57.8175635127 0.8830561661 0.05
- 57.8373674735 0.8785922153 0.05
- 57.8571714343 0.8734175376 0.05
- 57.8769753951 0.8675788463 0.05
- 57.8967793559 0.8611311062 0.05
- 57.9165833167 0.8541841836 0.05
- 57.9363872775 0.847213729 0.05
- 57.9561912382 0.8405091404 0.05
- 57.975995199 0.8345294342 0.05
- 57.9957991598 0.8297831966 0.05
- 58.0156031206 0.8265713104 0.05
- 58.0354070814 0.8253002408 0.05
- 58.0552110422 0.8263354652 0.05
- 58.075015003 0.8296194403 0.05
- 58.0948189638 0.8352206799 0.05
- 58.1146229246 0.8428164206 0.05
- 58.1344268854 0.8522105458 0.05
- 58.1542308462 0.8628214762 0.05
- 58.174034807 0.8742309774 0.05
- 58.1938387678 0.8856964993 0.05
- 58.2136427285 0.8968540105 0.05
- 58.2334466893 0.9072422034 0.05
- 58.2532506501 0.9164003903 0.05
- 58.2730546109 0.9242012541 0.05
- 58.2928585717 0.9304716925 0.05
- 58.3126625325 0.9351854887 0.05
- 58.3324664933 0.9383599751 0.05
- 58.3522704541 0.9400985876 0.05
- 58.3720744149 0.9404566236 0.05
- 58.3918783757 0.939566141 0.05
- 58.4116823365 0.9374918012 0.05
- 58.4314862973 0.9343668675 0.05
- 58.4512902581 0.9302699761 0.05
- 58.4710942188 0.9253358592 0.05
- 58.4908981796 0.9196754766 0.05
- 58.5107021404 0.9134590479 0.05
- 58.5305061012 0.9069330801 0.05
- 58.550310062 0.9003772984 0.05
- 58.5701140228 0.89398159 0.05
- 58.5899179836 0.8880976767 0.05
- 58.6097219444 0.8830694599 0.05
- 58.6295259052 0.8790307099 0.05
- 58.649329866 0.8763572865 0.05
- 58.6691338268 0.8750980859 0.05
- 58.6889377876 0.8754090466 0.05
- 58.7087417483 0.8771157946 0.05
- 58.7285457091 0.8803013263 0.05
- 58.7483496699 0.8845799829 0.05
- 58.7681536307 0.8898562062 0.05
- 58.7879575915 0.8957459316 0.05
- 58.8077615523 0.9019416092 0.05
- 58.8275655131 0.9081812399 0.05
- 58.8473694739 0.9142519111 0.05
- 58.8671734347 0.9199559842 0.05
- 58.8869773955 0.9250508783 0.05
- 58.9067813563 0.9295665947 0.05
- 58.9265853171 0.9334198455 0.05
- 58.9463892779 0.936656643 0.05
- 58.9661932386 0.9393492037 0.05
- 58.9859971994 0.9415788317 0.05
- 59.0058011602 0.9434915515 0.05
- 59.025605121 0.9451534942 0.05
- 59.0454090818 0.9466824962 0.05
- 59.0652130426 0.9481208551 0.05
- 59.0850170034 0.949539609 0.05
- 59.1048209642 0.9509623799 0.05
- 59.124624925 0.9523798106 0.05
- 59.1444288858 0.9538309172 0.05
- 59.1642328466 0.9552634317 0.05
- 59.1840368074 0.9566365834 0.05
- 59.2038407682 0.9579382451 0.05
- 59.2236447289 0.9591722335 0.05
- 59.2434486897 0.960287496 0.05
- 59.2632526505 0.9612719169 0.05
- 59.2830566113 0.962096733 0.05
- 59.3028605721 0.9627821528 0.05
- 59.3226645329 0.9633253347 0.05
- 59.3424684937 0.9637282971 0.05
- 59.3622724545 0.9639946689 0.05
- 59.3820764153 0.9641337645 0.05
- 59.4018803761 0.9641436854 0.05
- 59.4216843369 0.9640314417 0.05
- 59.4414882977 0.9637953952 0.05
- 59.4612922585 0.9634384856 0.05
- 59.4810962192 0.9629452784 0.05
- 59.50090018 0.9623288077 0.05
- 59.5207041408 0.9615978664 0.05
- 59.5405081016 0.9607488544 0.05
- 59.5603120624 0.9598086682 0.05
- 59.5801160232 0.9587884466 0.05
- 59.599919984 0.9577303767 0.05
- 59.6197239448 0.9566483635 0.05
- 59.6395279056 0.9555840313 0.05
- 59.6593318664 0.9545489185 0.05
- 59.6791358272 0.9535955578 0.05
- 59.698939788 0.9526955603 0.05
- 59.7187437487 0.9519174894 0.05
- 59.7385477095 0.9511848053 0.05
- 59.7583516703 0.950515493 0.05
- 59.7781556311 0.9498683545 0.05
- 59.7979595919 0.9492126391 0.05
- 59.8177635527 0.9484816743 0.05
- 59.8375675135 0.9476537669 0.05
- 59.8573714743 0.9466465628 0.05
- 59.8771754351 0.9454507796 0.05
- 59.8969793959 0.9440103332 0.05
- 59.9167833567 0.9423255012 0.05
- 59.9365873175 0.9403743376 0.05
- 59.9563912783 0.9381740143 0.05
- 59.976195239 0.9357239408 0.05
- 59.9959991998 0.9330908909 0.05
- 60.0158031606 0.930294381 0.05
- 60.0356071214 0.927447775 0.05
- 60.0554110822 0.9245842128 0.05
- 60.075215043 0.9217748667 0.05
- 60.0950190038 0.9191414297 0.05
- 60.1148229646 0.9167802604 0.05
- 60.1346269254 0.9147794785 0.05
- 60.1544308862 0.9132185347 0.05
- 60.174234847 0.9121993443 0.05
- 60.1940388078 0.9118091643 0.05
- 60.2138427686 0.9120064631 0.05
- 60.2336467293 0.9127932303 0.05
- 60.2534506901 0.914202099 0.05
- 60.2732546509 0.9161610463 0.05
- 60.2930586117 0.9186266668 0.05
- 60.3128625725 0.9214976043 0.05
- 60.3326665333 0.924609964 0.05
- 60.3524704941 0.9279321297 0.05
- 60.3722744549 0.9313110469 0.05
- 60.3920784157 0.9347012237 0.05
- 60.4118823765 0.9379289252 0.05
- 60.4316863373 0.9409406967 0.05
- 60.4514902981 0.9436910044 0.05
- 60.4712942589 0.9460427358 0.05
- 60.4910982196 0.9480187712 0.05
- 60.5109021804 0.9495360688 0.05
- 60.5307061412 0.9505839777 0.05
- 60.550510102 0.9511481179 0.05
- 60.5703140628 0.9512185451 0.05
- 60.5901180236 0.950809761 0.05
- 60.6099219844 0.9499798471 0.05
- 60.6297259452 0.9487037068 0.05
- 60.649529906 0.9471125021 0.05
- 60.6693338668 0.9452229465 0.05
- 60.6891378276 0.9431625698 0.05
- 60.7089417884 0.9410683234 0.05
- 60.7287457491 0.9389758014 0.05
- 60.7485497099 0.9370724789 0.05
- 60.7683536707 0.9354131232 0.05
- 60.7881576315 0.9340821453 0.05
- 60.8079615923 0.9331180801 0.05
- 60.8277655531 0.9325254086 0.05
- 60.8475695139 0.9323033271 0.05
- 60.8673734747 0.9323547875 0.05
- 60.8871774355 0.9326241078 0.05
- 60.9069813963 0.9329979502 0.05
- 60.9267853571 0.9333893795 0.05
- 60.9465893179 0.9337429369 0.05
- 60.9663932787 0.934016085 0.05
- 60.9861972394 0.9341769927 0.05
- 61.0060012002 0.9342469227 0.05
- 61.025805161 0.934324386 0.05
- 61.0456091218 0.9344479584 0.05
- 61.0654130826 0.9346723991 0.05
- 61.0852170434 0.9351307405 0.05
- 61.1050210042 0.935822887 0.05
- 61.124824965 0.9368443787 0.05
- 61.1446289258 0.9381600931 0.05
- 61.1644328866 0.939754374 0.05
- 61.1842368474 0.9415964147 0.05
- 61.2040408082 0.943595534 0.05
- 61.223844769 0.9456468846 0.05
- 61.2436487297 0.9477404789 0.05
- 61.2634526905 0.9497650958 0.05
- 61.2832566513 0.9516560248 0.05
- 61.3030606121 0.9533979636 0.05
- 61.3228645729 0.9549288418 0.05
- 61.3426685337 0.956254897 0.05
- 61.3624724945 0.9573751415 0.05
- 61.3822764553 0.9583059178 0.05
- 61.4020804161 0.9590733839 0.05
- 61.4218843769 0.9596917994 0.05
- 61.4416883377 0.9601944514 0.05
- 61.4614922985 0.9606075421 0.05
- 61.4812962593 0.9609170189 0.05
- 61.50110022 0.9611608256 0.05
- 61.5209041808 0.9613641158 0.05
- 61.5407081416 0.9615492226 0.05
- 61.5605121024 0.9617230088 0.05
- 61.5803160632 0.9618798119 0.05
- 61.600120024 0.9620213507 0.05
- 61.6199239848 0.9621484176 0.05
- 61.6397279456 0.962274844 0.05
- 61.6595319064 0.9624225318 0.05
- 61.6793358672 0.9625651204 0.05
- 61.699139828 0.9627292302 0.05
- 61.7189437888 0.9628996449 0.05
- 61.7387477495 0.9630752932 0.05
- 61.7585517103 0.9632726119 0.05
- 61.7783556711 0.9634694997 0.05
- 61.7981596319 0.9636684707 0.05
- 61.8179635927 0.9638779886 0.05
- 61.8377675535 0.9640854762 0.05
- 61.8575715143 0.9642936945 0.05
- 61.8773754751 0.9644793112 0.05
- 61.8971794359 0.9646608558 0.05
- 61.9169833967 0.9648205155 0.05
- 61.9367873575 0.9649608574 0.05
- 61.9565913183 0.9650731661 0.05
- 61.9763952791 0.9651637207 0.05
- 61.9961992398 0.965225708 0.05
- 62.0160032006 0.9652679144 0.05
- 62.0358071614 0.9652711897 0.05
- 62.0556111222 0.9652427825 0.05
- 62.075415083 0.965190814 0.05
- 62.0952190438 0.9651008552 0.05
- 62.1150230046 0.9649862008 0.05
- 62.1348269654 0.9648426352 0.05
- 62.1546309262 0.9646638929 0.05
- 62.174434887 0.9644564142 0.05
- 62.1942388478 0.9642110589 0.05
- 62.2140428086 0.9639399822 0.05
- 62.2338467694 0.9636317101 0.05
- 62.2536507301 0.9632994819 0.05
- 62.2734546909 0.9629402439 0.05
- 62.2932586517 0.9625600796 0.05
- 62.3130626125 0.9621578743 0.05
- 62.3328665733 0.9617711018 0.05
- 62.3526705341 0.9613982942 0.05
- 62.3724744949 0.9610428901 0.05
- 62.3922784557 0.9607246108 0.05
- 62.4120824165 0.960448237 0.05
- 62.4318863773 0.960224461 0.05
- 62.4516903381 0.9600594357 0.05
- 62.4714942989 0.9599406614 0.05
- 62.4912982597 0.95985997 0.05
- 62.5111022204 0.9597859498 0.05
- 62.5309061812 0.9597117714 0.05
- 62.550710142 0.9595690408 0.05
- 62.5705141028 0.9593331673 0.05
- 62.5903180636 0.9589475841 0.05
- 62.6101220244 0.9583484081 0.05
- 62.6299259852 0.9574240647 0.05
- 62.649729946 0.956091478 0.05
- 62.6695339068 0.9541930997 0.05
- 62.6893378676 0.9516015029 0.05
- 62.7091418284 0.9480735633 0.05
- 62.7289457892 0.9434334119 0.05
- 62.7487497499 0.9373801548 0.05
- 62.7685537107 0.9295949517 0.05
- 62.7883576715 0.9198057207 0.05
- 62.8081616323 0.9075149397 0.05
- 62.8279655931 0.8925919023 0.05
- 62.8477695539 0.8748290966 0.05
- 62.8675735147 0.8541379204 0.05
- 62.8873774755 0.8304400759 0.05
- 62.9071814363 0.8042636081 0.05
- 62.9269853971 0.7760131572 0.05
- 62.9467893579 0.746492668 0.05
- 62.9665933187 0.716790904 0.05
- 62.9863972795 0.6876919327 0.05
- 63.0062012402 0.6601822477 0.05
- 63.026005201 0.6351062176 0.05
- 63.0458091618 0.61349796 0.05
- 63.0656131226 0.5963332922 0.05
- 63.0854170834 0.5834925483 0.05
- 63.1052210442 0.5759525004 0.05
- 63.125025005 0.5739024555 0.05
- 63.1448289658 0.5768606702 0.05
- 63.1646329266 0.5850224235 0.05
- 63.1844368874 0.5983397413 0.05
- 63.2042408482 0.6158624686 0.05
- 63.224044809 0.6374916438 0.05
- 63.2438487698 0.6619190151 0.05
- 63.2636527305 0.6885083206 0.05
- 63.2834566913 0.7161357075 0.05
- 63.3032606521 0.7442271983 0.05
- 63.3230646129 0.7715256236 0.05
- 63.3428685737 0.7973507166 0.05
- 63.3626725345 0.8209621045 0.05
- 63.3824764953 0.842108959 0.05
- 63.4022804561 0.8604482085 0.05
- 63.4220844169 0.8759235235 0.05
- 63.4418883777 0.8887244524 0.05
- 63.4616923385 0.8991692968 0.05
- 63.4814962993 0.9074640167 0.05
- 63.5013002601 0.9140563511 0.05
- 63.5211042208 0.9191929849 0.05
- 63.5409081816 0.9232088416 0.05
- 63.5607121424 0.9263496948 0.05
- 63.5805161032 0.9288276571 0.05
- 63.600320064 0.9308643002 0.05
- 63.6201240248 0.9325439534 0.05
- 63.6399279856 0.9339866949 0.05
- 63.6597319464 0.935324429 0.05
- 63.6795359072 0.9365292102 0.05
- 63.699339868 0.9376643561 0.05
- 63.7191438288 0.9387853003 0.05
- 63.7389477896 0.9398975572 0.05
- 63.7587517504 0.9409435175 0.05
- 63.7785557111 0.9420194464 0.05
- 63.7983596719 0.9430564333 0.05
- 63.8181636327 0.94406198 0.05
- 63.8379675935 0.9450011907 0.05
- 63.8577715543 0.9458913453 0.05
- 63.8775755151 0.9466907623 0.05
- 63.8973794759 0.9473848154 0.05
- 63.9171834367 0.9479245861 0.05
- 63.9369873975 0.9482051136 0.05
- 63.9567913583 0.9482195409 0.05
- 63.9765953191 0.9478181346 0.05
- 63.9963992799 0.9468924307 0.05
- 64.0162032406 0.9453582806 0.05
- 64.0360072014 0.9430254135 0.05
- 64.0558111622 0.9397952616 0.05
- 64.075615123 0.9355380571 0.05
- 64.0954190838 0.9302098587 0.05
- 64.1152230446 0.923868495 0.05
- 64.1350270054 0.91656807 0.05
- 64.1548309662 0.9086302732 0.05
- 64.174634927 0.9002912113 0.05
- 64.1944388878 0.891969777 0.05
- 64.2142428486 0.8841955384 0.05
- 64.2340468094 0.8774016724 0.05
- 64.2538507702 0.8720940593 0.05
- 64.2736547309 0.8686195681 0.05
- 64.2934586917 0.8671866604 0.05
- 64.3132626525 0.8681021472 0.05
- 64.3330666133 0.8711934727 0.05
- 64.3528705741 0.8762267919 0.05
- 64.3726745349 0.8830563205 0.05
- 64.3924784957 0.8911824838 0.05
- 64.4122824565 0.9000947029 0.05
- 64.4320864173 0.909352075 0.05
- 64.4518903781 0.91853314 0.05
- 64.4716943389 0.9272645862 0.05
- 64.4914982997 0.9351868893 0.05
- 64.5113022605 0.9421668319 0.05
- 64.5311062212 0.9481490939 0.05
- 64.550910182 0.9531042922 0.05
- 64.5707141428 0.9571297461 0.05
- 64.5905181036 0.9603322529 0.05
- 64.6103220644 0.9628209691 0.05
- 64.6301260252 0.964749099 0.05
- 64.649929986 0.9662208185 0.05
- 64.6697339468 0.9673578892 0.05
- 64.6895379076 0.9682322466 0.05
- 64.7093418684 0.9689309999 0.05
- 64.7291458292 0.9694865148 0.05
- 64.74894979 0.9699404204 0.05
- 64.7687537508 0.9703307953 0.05
- 64.7885577115 0.9706662586 0.05
- 64.8083616723 0.9709543309 0.05
- 64.8281656331 0.9712061741 0.05
- 64.8479695939 0.9714408185 0.05
- 64.8677735547 0.9716509024 0.05
- 64.8875775155 0.9718472097 0.05
- 64.9073814763 0.9720099411 0.05
- 64.9271854371 0.9721589354 0.05
- 64.9469893979 0.9722924932 0.05
- 64.9667933587 0.9724076581 0.05
- 64.9865973195 0.9725125829 0.05
- 65.0064012803 0.9726026006 0.05
- 65.026205241 0.9726772149 0.05
- 65.0460092018 0.9727396848 0.05
- 65.0658131626 0.9727848784 0.05
- 65.0856171234 0.9728101786 0.05
- 65.1054210842 0.9728193177 0.05
- 65.125225045 0.9728115404 0.05
- 65.1450290058 0.9727812565 0.05
- 65.1648329666 0.9727300367 0.05
- 65.1846369274 0.9726583517 0.05
- 65.2044408882 0.9725589651 0.05
- 65.224244849 0.9724255958 0.05
- 65.2440488098 0.9722617751 0.05
- 65.2638527706 0.9720576422 0.05
- 65.2836567313 0.9718078551 0.05
- 65.3034606921 0.9715081024 0.05
- 65.3232646529 0.9711419964 0.05
- 65.3430686137 0.9706995327 0.05
- 65.3628725745 0.9701671602 0.05
- 65.3826765353 0.969530495 0.05
- 65.4024804961 0.9687535048 0.05
- 65.4222844569 0.9678005005 0.05
- 65.4420884177 0.9666191106 0.05
- 65.4618923785 0.9651634505 0.05
- 65.4816963393 0.9633624683 0.05
- 65.5015003001 0.9611120366 0.05
- 65.5213042609 0.9583090944 0.05
- 65.5411082216 0.9548207964 0.05
- 65.5609121824 0.950436704 0.05
- 65.5807161432 0.944928508 0.05
- 65.600520104 0.9379385706 0.05
- 65.6203240648 0.929002732 0.05
- 65.6401280256 0.9175945878 0.05
- 65.6599319864 0.902838879 0.05
- 65.6797359472 0.8837768578 0.05
- 65.699539908 0.859253378 0.05
- 65.7193438688 0.8281475226 0.05
- 65.7391478296 0.7890890592 0.05
- 65.7589517904 0.7415288266 0.05
- 65.7787557512 0.685362748 0.05
- 65.7985597119 0.6212518426 0.05
- 65.8183636727 0.5514914554 0.05
- 65.8381676335 0.4792756463 0.05
- 65.8579715943 0.4084883817 0.05
- 65.8777755551 0.3418258461 0.05
- 65.8975795159 0.2829987502 0.05
- 65.9173834767 0.2335456712 0.05
- 65.9371874375 0.1935331254 0.05
- 65.9569913983 0.1629999765 0.05
- 65.9767953591 0.1408793167 0.05
- 65.9965993199 0.1263768014 0.05
- 66.0164032807 0.1185020937 0.05
- 66.0362072414 0.1164364224 0.05
- 66.0560112022 0.1202721164 0.05
- 66.075815163 0.1302705235 0.05
- 66.0956191238 0.1470954857 0.05
- 66.1154230846 0.1713638374 0.05
- 66.1352270454 0.2042127469 0.05
- 66.1550310062 0.2460176072 0.05
- 66.174834967 0.296864057 0.05
- 66.1946389278 0.3558282506 0.05
- 66.2144428886 0.4210281827 0.05
- 66.2342468494 0.4887183223 0.05
- 66.2540508102 0.5555847725 0.05
- 66.273854771 0.6189368295 0.05
- 66.2936587317 0.6755129204 0.05
- 66.3134626925 0.7243648878 0.05
- 66.3332666533 0.7647517777 0.05
- 66.3530706141 0.7973875455 0.05
- 66.3728745749 0.823158348 0.05
- 66.3926785357 0.8435318234 0.05
- 66.4124824965 0.8596456098 0.05
- 66.4322864573 0.8725983721 0.05
- 66.4520904181 0.8833049237 0.05
- 66.4718943789 0.8923985808 0.05
- 66.4916983397 0.9003483 0.05
- 66.5115023005 0.9074507824 0.05
- 66.5313062613 0.9137952746 0.05
- 66.551110222 0.919573852 0.05
- 66.5709141828 0.9247574461 0.05
- 66.5907181436 0.9294110367 0.05
- 66.6105221044 0.9335223126 0.05
- 66.6303260652 0.9371209808 0.05
- 66.650130026 0.9402745601 0.05
- 66.6699339868 0.9430097919 0.05
- 66.6897379476 0.945370893 0.05
- 66.7095419084 0.9473922866 0.05
- 66.7293458692 0.9491419356 0.05
- 66.74914983 0.9506646573 0.05
- 66.7689537908 0.95197235 0.05
- 66.7887577516 0.9531427257 0.05
- 66.8085617123 0.9541653103 0.05
- 66.8283656731 0.9550619671 0.05
- 66.8481696339 0.9558833215 0.05
- 66.8679735947 0.9566060548 0.05
- 66.8877775555 0.9572469716 0.05
- 66.9075815163 0.9578097261 0.05
- 66.9273854771 0.9582886707 0.05
- 66.9471894379 0.9587083485 0.05
- 66.9669933987 0.9590344741 0.05
- 66.9867973595 0.9592975288 0.05
- 67.0066013203 0.9594673358 0.05
- 67.0264052811 0.9595748483 0.05
- 67.0462092418 0.9595966634 0.05
- 67.0660132026 0.9595594569 0.05
- 67.0858171634 0.959479184 0.05
- 67.1056211242 0.9593706607 0.05
- 67.125425085 0.9592670425 0.05
- 67.1452290458 0.9591860738 0.05
- 67.1650330066 0.9591273918 0.05
- 67.1848369674 0.9591457055 0.05
- 67.2046409282 0.9592473301 0.05
- 67.224444889 0.9594438538 0.05
- 67.2442488498 0.9597531222 0.05
- 67.2640528106 0.9601527114 0.05
- 67.2838567714 0.960639784 0.05
- 67.3036607321 0.9612074642 0.05
- 67.3234646929 0.9618388467 0.05
- 67.3432686537 0.9624823456 0.05
- 67.3630726145 0.9631317656 0.05
- 67.3828765753 0.9637741969 0.05
- 67.4026805361 0.9643915203 0.05
- 67.4224844969 0.9649554555 0.05
- 67.4422884577 0.9654694921 0.05
- 67.4620924185 0.9659341016 0.05
- 67.4818963793 0.9663477553 0.05
- 67.5017003401 0.9667152934 0.05
- 67.5215043009 0.9670281797 0.05
- 67.5413082617 0.9673013866 0.05
- 67.5611122224 0.9675446541 0.05
- 67.5809161832 0.9677635413 0.05
- 67.600720144 0.9679634641 0.05
- 67.6205241048 0.9681440088 0.05
- 67.6403280656 0.9683047667 0.05
- 67.6601320264 0.9684572155 0.05
- 67.6799359872 0.9686010344 0.05
- 67.699739948 0.9687394686 0.05
- 67.7195439088 0.9688680076 0.05
- 67.7393478696 0.968985778 0.05
- 67.7591518304 0.9691008516 0.05
- 67.7789557912 0.9692111005 0.05
- 67.798759752 0.969319014 0.05
- 67.8185637127 0.9694238764 0.05
- 67.8383676735 0.9695175731 0.05
- 67.8581716343 0.9696071012 0.05
- 67.8779755951 0.9696923741 0.05
- 67.8977795559 0.9697742592 0.05
- 67.9175835167 0.969853849 0.05
- 67.9373874775 0.969925659 0.05
- 67.9571914383 0.9699903693 0.05
- 67.9769953991 0.9700454243 0.05
- 67.9967993599 0.9700927813 0.05
- 68.0166033207 0.970133031 0.05
- 68.0364072815 0.9701600363 0.05
- 68.0562112422 0.9701738596 0.05
- 68.076015203 0.9701641408 0.05
- 68.0958191638 0.9701344799 0.05
- 68.1156231246 0.9700809274 0.05
- 68.1354270854 0.9700011774 0.05
- 68.1552310462 0.9698908593 0.05
- 68.175035007 0.9697454757 0.05
- 68.1948389678 0.9695646633 0.05
- 68.2146429286 0.9693519866 0.05
- 68.2344468894 0.9691001555 0.05
- 68.2542508502 0.9688141926 0.05
- 68.274054811 0.9685046173 0.05
- 68.2938587718 0.968179113 0.05
- 68.3136627325 0.967839557 0.05
- 68.3334666933 0.9674898109 0.05
- 68.3532706541 0.9671508496 0.05
- 68.3730746149 0.9668265175 0.05
- 68.3928785757 0.966522372 0.05
- 68.4126825365 0.9662421568 0.05
- 68.4324864973 0.9660013009 0.05
- 68.4522904581 0.9658044044 0.05
- 68.4720944189 0.9656475011 0.05
- 68.4918983797 0.9655498402 0.05
- 68.5117023405 0.965517291 0.05
- 68.5315063013 0.9655495874 0.05
- 68.5513102621 0.965648261 0.05
- 68.5711142228 0.9658236011 0.05
- 68.5909181836 0.966068132 0.05
- 68.6107221444 0.9663794643 0.05
- 68.6305261052 0.9667483989 0.05
- 68.650330066 0.9671752324 0.05
- 68.6701340268 0.9676278096 0.05
- 68.6899379876 0.9680853089 0.05
- 68.7097419484 0.9685328741 0.05
- 68.7295459092 0.9689677366 0.05
- 68.74934987 0.9693434984 0.05
- 68.7691538308 0.9696501588 0.05
- 68.7889577916 0.9698672577 0.05
- 68.8087617524 0.9699943059 0.05
- 68.8285657131 0.9700044561 0.05
- 68.8483696739 0.9698852462 0.05
- 68.8681736347 0.9696211704 0.05
- 68.8879775955 0.9692026811 0.05
- 68.9077815563 0.9686033535 0.05
- 68.9275855171 0.9678174604 0.05
- 68.9473894779 0.9668252528 0.05
- 68.9671934387 0.9656049649 0.05
- 68.9869973995 0.9641524383 0.05
- 69.0068013603 0.9624484295 0.05
- 69.0266053211 0.9605098997 0.05
- 69.0464092819 0.9583506389 0.05
- 69.0662132426 0.9559857076 0.05
- 69.0860172034 0.9534785414 0.05
- 69.1058211642 0.9509034265 0.05
- 69.125625125 0.9483258577 0.05
- 69.1454290858 0.9457960298 0.05
- 69.1652330466 0.9434644101 0.05
- 69.1850370074 0.9413647493 0.05
- 69.2048409682 0.9395894213 0.05
- 69.224644929 0.9382568396 0.05
- 69.2444488898 0.9373669602 0.05
- 69.2642528506 0.9369419534 0.05
- 69.2840568114 0.9370032299 0.05
- 69.3038607722 0.9374973479 0.05
- 69.3236647329 0.9384097086 0.05
- 69.3434686937 0.9396516282 0.05
- 69.3632726545 0.9411601146 0.05
- 69.3830766153 0.9428415845 0.05
- 69.4028805761 0.9446322712 0.05
- 69.4226845369 0.9464530413 0.05
- 69.4424884977 0.9482567848 0.05
- 69.4622924585 0.9499929508 0.05
- 69.4820964193 0.9516151001 0.05
- 69.5019003801 0.9530830483 0.05
- 69.5217043409 0.9544132865 0.05
- 69.5415083017 0.9555928661 0.05
- 69.5613122625 0.956614185 0.05
- 69.5811162232 0.957501321 0.05
- 69.600920184 0.9582681909 0.05
- 69.6207241448 0.9589209307 0.05
- 69.6405281056 0.9594814079 0.05
- 69.6603320664 0.9599345113 0.05
- 69.6801360272 0.9603062579 0.05
- 69.699939988 0.9606035684 0.05
- 69.7197439488 0.9608117109 0.05
- 69.7395479096 0.9609433022 0.05
- 69.7593518704 0.9610031281 0.05
- 69.7791558312 0.9609692075 0.05
- 69.798959792 0.9608430883 0.05
- 69.8187637528 0.9606144112 0.05
- 69.8385677135 0.960288326 0.05
- 69.8583716743 0.9598433184 0.05
- 69.8781756351 0.9592647913 0.05
- 69.8979795959 0.9585360812 0.05
- 69.9177835567 0.957642917 0.05
- 69.9375875175 0.9565350612 0.05
- 69.9573914783 0.9552080815 0.05
- 69.9771954391 0.9535689347 0.05
- 69.9969993999 0.9516066828 0.05
- 70.0168033607 0.9492172821 0.05
- 70.0366073215 0.9463564658 0.05
- 70.0564112823 0.9429432846 0.05
- 70.076215243 0.9388391229 0.05
- 70.0960192038 0.934018556 0.05
- 70.1158231646 0.9283967573 0.05
- 70.1356271254 0.921905466 0.05
- 70.1554310862 0.9146324047 0.05
- 70.175235047 0.9064454107 0.05
- 70.1950390078 0.8976104819 0.05
- 70.2148429686 0.8881804385 0.05
- 70.2346469294 0.8783767705 0.05
- 70.2544508902 0.8684735762 0.05
- 70.274254851 0.8587281103 0.05
- 70.2940588118 0.8494703339 0.05
- 70.3138627726 0.8409555321 0.05
- 70.3336667333 0.8334970101 0.05
- 70.3534706941 0.8274048477 0.05
- 70.3732746549 0.8225843623 0.05
- 70.3930786157 0.8194370262 0.05
- 70.4128825765 0.8177328464 0.05
- 70.4326865373 0.817385385 0.05
- 70.4524904981 0.8183377018 0.05
- 70.4722944589 0.8203090793 0.05
- 70.4920984197 0.8230559569 0.05
- 70.5119023805 0.8261464128 0.05
- 70.5317063413 0.8294600448 0.05
- 70.5515103021 0.832681512 0.05
- 70.5713142629 0.8357265886 0.05
- 70.5911182236 0.8383218414 0.05
- 70.6109221844 0.840389804 0.05
- 70.6307261452 0.8421288366 0.05
- 70.650530106 0.8434274349 0.05
- 70.6703340668 0.8445639722 0.05
- 70.6901380276 0.845603521 0.05
- 70.7099419884 0.8467742621 0.05
- 70.7297459492 0.8483016471 0.05
- 70.74954991 0.8503258122 0.05
- 70.7693538708 0.8530084678 0.05
- 70.7891578316 0.8563774946 0.05
- 70.8089617924 0.8605144474 0.05
- 70.8287657532 0.8654524007 0.05
- 70.8485697139 0.8710726935 0.05
- 70.8683736747 0.8772764941 0.05
- 70.8881776355 0.8838738787 0.05
- 70.9079815963 0.8907469436 0.05
- 70.9277855571 0.8977529792 0.05
- 70.9475895179 0.9046758821 0.05
- 70.9673934787 0.9114285862 0.05
- 70.9871974395 0.9178543125 0.05
- 71.0070014003 0.9238136044 0.05
- 71.0268053611 0.929254586 0.05
- 71.0466093219 0.9341522775 0.05
- 71.0664132827 0.9384921852 0.05
- 71.0862172434 0.9422858604 0.05
- 71.1060212042 0.945578537 0.05
- 71.125825165 0.948386575 0.05
- 71.1456291258 0.9507644755 0.05
- 71.1654330866 0.9527405085 0.05
- 71.1852370474 0.9543798219 0.05
- 71.2050410082 0.9557386103 0.05
- 71.224844969 0.9568258238 0.05
- 71.2446489298 0.9576930537 0.05
- 71.2644528906 0.9583698538 0.05
- 71.2842568514 0.9588601574 0.05
- 71.3040608122 0.9591944881 0.05
- 71.323864773 0.9593865959 0.05
- 71.3436687337 0.9594509873 0.05
- 71.3634726945 0.9593930054 0.05
- 71.3832766553 0.9592250246 0.05
- 71.4030806161 0.9589639349 0.05
- 71.4228845769 0.958612098 0.05
- 71.4426885377 0.9581996054 0.05
- 71.4624924985 0.9577491577 0.05
- 71.4822964593 0.9572668905 0.05
- 71.5021004201 0.9567636069 0.05
- 71.5219043809 0.9563134743 0.05
- 71.5417083417 0.9559185919 0.05
- 71.5615123025 0.9556081274 0.05
- 71.5813162633 0.9554158365 0.05
- 71.601120224 0.9553782298 0.05
- 71.6209241848 0.9555142494 0.05
- 71.6407281456 0.9558153353 0.05
- 71.6605321064 0.9562849378 0.05
- 71.6803360672 0.9569213908 0.05
- 71.700140028 0.9577163761 0.05
- 71.7199439888 0.9586511359 0.05
- 71.7397479496 0.9596609889 0.05
- 71.7595519104 0.9607137951 0.05
- 71.7793558712 0.9617929995 0.05
- 71.799159832 0.9628072924 0.05
- 71.8189637928 0.9637556354 0.05
- 71.8387677536 0.9645672678 0.05
- 71.8585717143 0.9652052687 0.05
- 71.8783756751 0.9656377487 0.05
- 71.8981796359 0.9658120043 0.05
- 71.9179835967 0.9656874488 0.05
- 71.9377875575 0.9652460744 0.05
- 71.9575915183 0.9644182596 0.05
- 71.9773954791 0.9631628493 0.05
- 71.9971994399 0.9614415849 0.05
- 72.0170034007 0.9591704233 0.05
- 72.0368073615 0.9562998755 0.05
- 72.0566113223 0.9527392692 0.05
- 72.0764152831 0.9484593848 0.05
- 72.0962192438 0.9434125311 0.05
- 72.1160232046 0.9375238023 0.05
- 72.1358271654 0.9308448159 0.05
- 72.1556311262 0.9233982578 0.05
- 72.175435087 0.9152750946 0.05
- 72.1952390478 0.9066732761 0.05
- 72.2150430086 0.8978139852 0.05
- 72.2348469694 0.8888685311 0.05
- 72.2546509302 0.8800641299 0.05
- 72.274454891 0.8718409386 0.05
- 72.2942588518 0.8644469234 0.05
- 72.3140628126 0.858213105 0.05
- 72.3338667734 0.8532726731 0.05
- 72.3536707341 0.8499094748 0.05
- 72.3734746949 0.8481905819 0.05
- 72.3932786557 0.8482009124 0.05
- 72.4130826165 0.8499939679 0.05
- 72.4328865773 0.8532187368 0.05
- 72.4526905381 0.8579797011 0.05
- 72.4724944989 0.8638521582 0.05
- 72.4922984597 0.870599449 0.05
- 72.5121024205 0.877992443 0.05
- 72.5319063813 0.885656656 0.05
- 72.5517103421 0.893379845 0.05
- 72.5715143029 0.9009850275 0.05
- 72.5913182637 0.9082627937 0.05
- 72.6111222244 0.9149742224 0.05
- 72.6309261852 0.9211001911 0.05
- 72.650730146 0.9265611968 0.05
- 72.6705341068 0.9313589361 0.05
- 72.6903380676 0.9355028541 0.05
- 72.7101420284 0.9390412244 0.05
- 72.7299459892 0.9420174052 0.05
- 72.74974995 0.9445156905 0.05
- 72.7695539108 0.9466110983 0.05
- 72.7893578716 0.9483215527 0.05
- 72.8091618324 0.9497781874 0.05
- 72.8289657932 0.9510147232 0.05
- 72.848769754 0.9520582886 0.05
- 72.8685737147 0.9530019953 0.05
- 72.8883776755 0.9538704746 0.05
- 72.9081816363 0.9546747474 0.05
- 72.9279855971 0.9554542644 0.05
- 72.9477895579 0.9562237606 0.05
- 72.9675935187 0.9569995249 0.05
- 72.9873974795 0.9577999732 0.05
- 73.0072014403 0.9585951633 0.05
- 73.0270054011 0.9594043465 0.05
- 73.0468093619 0.9602284374 0.05
- 73.0666133227 0.961053228 0.05
- 73.0864172835 0.9618737068 0.05
- 73.1062212442 0.9626936739 0.05
- 73.126025205 0.9634859288 0.05
- 73.1458291658 0.964260031 0.05
- 73.1656331266 0.9649946241 0.05
- 73.1854370874 0.9656944921 0.05
- 73.2052410482 0.9663559749 0.05
- 73.225045009 0.9669730841 0.05
- 73.2448489698 0.9675450791 0.05
- 73.2646529306 0.9680816963 0.05
- 73.2844568914 0.968574589 0.05
- 73.3042608522 0.9690219521 0.05
- 73.324064813 0.9694402692 0.05
- 73.3438687738 0.9698247538 0.05
- 73.3636727345 0.9701696624 0.05
- 73.3834766953 0.9704893645 0.05
- 73.4032806561 0.9707852195 0.05
- 73.4230846169 0.971058377 0.05
- 73.4428885777 0.9713049875 0.05
- 73.4626925385 0.9715352434 0.05
- 73.4824964993 0.9717454139 0.05
- 73.5023004601 0.9719442429 0.05
- 73.5221044209 0.9721227286 0.05
- 73.5419083817 0.9722901692 0.05
- 73.5617123425 0.9724435984 0.05
- 73.5815163033 0.9725826799 0.05
- 73.6013202641 0.972715304 0.05
- 73.6211242248 0.9728323809 0.05
- 73.6409281856 0.9729397381 0.05
- 73.6607321464 0.9730381628 0.05
- 73.6805361072 0.9731241941 0.05
- 73.700340068 0.9731988576 0.05
- 73.7201440288 0.9732695041 0.05
- 73.7399479896 0.973327474 0.05
- 73.7597519504 0.9733772995 0.05
- 73.7795559112 0.9734115104 0.05
- 73.799359872 0.9734320896 0.05
- 73.8191638328 0.9734384974 0.05
- 73.8389677936 0.9734255568 0.05
- 73.8587717544 0.9734001662 0.05
- 73.8785757151 0.973357601 0.05
- 73.8983796759 0.9732923341 0.05
- 73.9181836367 0.9731941832 0.05
- 73.9379875975 0.9730583121 0.05
- 73.9577915583 0.9728839384 0.05
- 73.9775955191 0.9726622326 0.05
- 73.9973994799 0.9723782723 0.05
- 74.0172034407 0.9720102038 0.05
- 74.0370074015 0.9715454787 0.05
- 74.0568113623 0.9709411177 0.05
- 74.0766153231 0.970172927 0.05
- 74.0964192839 0.9691955248 0.05
- 74.1162232446 0.9679375041 0.05
- 74.1360272054 0.9663318932 0.05
- 74.1558311662 0.9642824602 0.05
- 74.175635127 0.9616882819 0.05
- 74.1954390878 0.9584189866 0.05
- 74.2152430486 0.9543722365 0.05
- 74.2350470094 0.949371518 0.05
- 74.2548509702 0.9433669877 0.05
- 74.274654931 0.9361889068 0.05
- 74.2944588918 0.9278104801 0.05
- 74.3142628526 0.9181944374 0.05
- 74.3340668134 0.9074791351 0.05
- 74.3538707742 0.8958886283 0.05
- 74.3736747349 0.8835646535 0.05
- 74.3934786957 0.871002037 0.05
- 74.4132826565 0.85845965 0.05
- 74.4330866173 0.8465502179 0.05
- 74.4528905781 0.8356178775 0.05
- 74.4726945389 0.8261133365 0.05
- 74.4924984997 0.8185820934 0.05
- 74.5123024605 0.8131509532 0.05
- 74.5321064213 0.8102749177 0.05
- 74.5519103821 0.8098660656 0.05
- 74.5717143429 0.8118970778 0.05
- 74.5915183037 0.8163511684 0.05
- 74.6113222645 0.8228127955 0.05
- 74.6311262252 0.8310593945 0.05
- 74.650930186 0.8405214779 0.05
- 74.6707341468 0.8508629618 0.05
- 74.6905381076 0.8615959274 0.05
- 74.7103420684 0.8723849717 0.05
- 74.7301460292 0.8827067636 0.05
- 74.74994999 0.8923468582 0.05
- 74.7697539508 0.9011012695 0.05
- 74.7895579116 0.9088683357 0.05
- 74.8093618724 0.9154848061 0.05
- 74.8291658332 0.9210112865 0.05
- 74.848969794 0.9254786507 0.05
- 74.8687737548 0.9289740197 0.05
- 74.8885777155 0.9316242172 0.05
- 74.9083816763 0.9334413091 0.05
- 74.9281856371 0.9346211069 0.05
- 74.9479895979 0.9352211813 0.05
- 74.9677935587 0.9353284776 0.05
- 74.9875975195 0.935044554 0.05
- 75.0074014803 0.9344547645 0.05
- 75.0272054411 0.9336262267 0.05
- 75.0470094019 0.9326330267 0.05
- 75.0668133627 0.9315762872 0.05
- 75.0866173235 0.9305101999 0.05
- 75.1064212843 0.9294572372 0.05
- 75.126225245 0.9284418073 0.05
- 75.1460292058 0.927482397 0.05
- 75.1658331666 0.9266449788 0.05
- 75.1856371274 0.9258473302 0.05
- 75.2054410882 0.9250867987 0.05
- 75.225245049 0.9243506086 0.05
- 75.2450490098 0.9236311434 0.05
- 75.2648529706 0.9228277012 0.05
- 75.2846569314 0.9219593416 0.05
- 75.3044608922 0.9209764903 0.05
- 75.324264853 0.9198696374 0.05
- 75.3440688138 0.9186069617 0.05
- 75.3638727746 0.9173009825 0.05
- 75.3836767353 0.9159558268 0.05
- 75.4034806961 0.9145518589 0.05
- 75.4232846569 0.9132033761 0.05
- 75.4430886177 0.9119720733 0.05
- 75.4628925785 0.9109908834 0.05
- 75.4826965393 0.9102578884 0.05
- 75.5025005001 0.9098952974 0.05
- 75.5223044609 0.9099386789 0.05
- 75.5421084217 0.9103923944 0.05
- 75.5619123825 0.911322465 0.05
- 75.5817163433 0.9126941564 0.05
- 75.6015203041 0.9145168397 0.05
- 75.6213242649 0.9167716121 0.05
- 75.6411282256 0.9194095626 0.05
- 75.6609321864 0.9222965881 0.05
- 75.6807361472 0.9254995203 0.05
- 75.700540108 0.9287813304 0.05
- 75.7203440688 0.9321730272 0.05
- 75.7401480296 0.9355974662 0.05
- 75.7599519904 0.9389606107 0.05
- 75.7797559512 0.9422283111 0.05
- 75.799559912 0.9453560385 0.05
- 75.8193638728 0.9482835582 0.05
- 75.8391678336 0.9509980507 0.05
- 75.8589717944 0.9534913212 0.05
- 75.8787757552 0.9557485292 0.05
- 75.8985797159 0.9577517424 0.05
- 75.9183836767 0.9595387299 0.05
- 75.9381876375 0.9611057541 0.05
- 75.9579915983 0.9624660333 0.05
- 75.9777955591 0.9636494232 0.05
- 75.9975995199 0.9646581991 0.05
- 76.0174034807 0.9655085707 0.05
- 76.0372074415 0.9662082593 0.05
- 76.0570114023 0.9667766966 0.05
- 76.0768153631 0.9672211105 0.05
- 76.0966193239 0.9675571265 0.05
- 76.1164232847 0.9677852709 0.05
- 76.1362272454 0.9679020675 0.05
- 76.1560312062 0.9679075509 0.05
- 76.175835167 0.9678034565 0.05
- 76.1956391278 0.9675816221 0.05
- 76.2154430886 0.9672220211 0.05
- 76.2352470494 0.9667151534 0.05
- 76.2550510102 0.9660110343 0.05
- 76.274854971 0.9650926498 0.05
- 76.2946589318 0.9638627007 0.05
- 76.3144628926 0.9622532221 0.05
- 76.3342668534 0.9601663746 0.05
- 76.3540708142 0.9574549595 0.05
- 76.373874775 0.9539396641 0.05
- 76.3936787357 0.9493689174 0.05
- 76.4134826965 0.943500831 0.05
- 76.4332866573 0.9360090176 0.05
- 76.4530906181 0.9264693621 0.05
- 76.4728945789 0.9145661037 0.05
- 76.4926985397 0.8998762898 0.05
- 76.5125025005 0.8820496778 0.05
- 76.5323064613 0.8607501404 0.05
- 76.5521104221 0.8358589815 0.05
- 76.5719143829 0.8073605168 0.05
- 76.5917183437 0.7756458579 0.05
- 76.6115223045 0.7410496746 0.05
- 76.6313262653 0.7044153464 0.05
- 76.651130226 0.666300018 0.05
- 76.6709341868 0.6281771355 0.05
- 76.6907381476 0.5912401569 0.05
- 76.7105421084 0.5561731353 0.05
- 76.7303460692 0.5237192987 0.05
- 76.75015003 0.4951663392 0.05
- 76.7699539908 0.4707230984 0.05
- 76.7897579516 0.4512434931 0.05
- 76.8095619124 0.4367598879 0.05
- 76.8293658732 0.4277358148 0.05
- 76.849169834 0.4238397966 0.05
- 76.8689737948 0.4255032687 0.05
- 76.8887777556 0.4324864272 0.05
- 76.9085817163 0.4446436109 0.05
- 76.9283856771 0.4618961812 0.05
- 76.9481896379 0.484108498 0.05
- 76.9679935987 0.5103438457 0.05
- 76.9877975595 0.5404745444 0.05
- 77.0076015203 0.5733017941 0.05
- 77.0274054811 0.6081025846 0.05
- 77.0472094419 0.6443394846 0.05
- 77.0670134027 0.6805503646 0.05
- 77.0868173635 0.7155115575 0.05
- 77.1066213243 0.7483284016 0.05
- 77.1264252851 0.7783779767 0.05
- 77.1462292458 0.8049053877 0.05
- 77.1660332066 0.827580679 0.05
- 77.1858371674 0.8460961852 0.05
- 77.2056411282 0.8604689194 0.05
- 77.225445089 0.8708676728 0.05
- 77.2452490498 0.8771371732 0.05
- 77.2650530106 0.8797417833 0.05
- 77.2848569714 0.8786899508 0.05
- 77.3046609322 0.8742251294 0.05
- 77.324464893 0.8664374772 0.05
- 77.3442688538 0.8557171453 0.05
- 77.3640728146 0.8422690892 0.05
- 77.3838767754 0.8263573236 0.05
- 77.4036807361 0.8083383008 0.05
- 77.4234846969 0.7887980957 0.05
- 77.4432886577 0.7681864674 0.05
- 77.4630926185 0.747120255 0.05
- 77.4828965793 0.7264693002 0.05
- 77.5027005401 0.7065016216 0.05
- 77.5225045009 0.6881128011 0.05
- 77.5423084617 0.6717729732 0.05
- 77.5621124225 0.6579628149 0.05
- 77.5819163833 0.6471783556 0.05
- 77.6017203441 0.6397052563 0.05
- 77.6215243049 0.636066014 0.05
- 77.6413282657 0.6358694036 0.05
- 77.6611322264 0.6394431775 0.05
- 77.6809361872 0.6466619555 0.05
- 77.700740148 0.6571516878 0.05
- 77.7205441088 0.6709247261 0.05
- 77.7403480696 0.6871119669 0.05
- 77.7601520304 0.7053903499 0.05
- 77.7799559912 0.7250147205 0.05
- 77.799759952 0.7452579644 0.05
- 77.8195639128 0.7656872514 0.05
- 77.8393678736 0.7855359679 0.05
- 77.8591718344 0.8042785043 0.05
- 77.8789757952 0.8212127396 0.05
- 77.898779756 0.8362530485 0.05
- 77.9185837167 0.8490706382 0.05
- 77.9383876775 0.8597740915 0.05
- 77.9581916383 0.8683868683 0.05
- 77.9779955991 0.8750288265 0.05
- 77.9977995599 0.8801211959 0.05
- 78.0176035207 0.8840176807 0.05
- 78.0374074815 0.886984063 0.05
- 78.0572114423 0.8894679999 0.05
- 78.0770154031 0.8917069946 0.05
- 78.0968193639 0.8939966851 0.05
- 78.1166233247 0.8964705928 0.05
- 78.1364272855 0.8992141342 0.05
- 78.1562312462 0.9023761845 0.05
- 78.176035207 0.9058642642 0.05
- 78.1958391678 0.9096480864 0.05
- 78.2156431286 0.9136344062 0.05
- 78.2354470894 0.9177513051 0.05
- 78.2552510502 0.9217888915 0.05
- 78.275055011 0.9257827814 0.05
- 78.2948589718 0.9295529129 0.05
- 78.3146629326 0.9330598788 0.05
- 78.3344668934 0.9362456301 0.05
- 78.3542708542 0.9390966452 0.05
- 78.374074815 0.9415892662 0.05
- 78.3938787758 0.9437274366 0.05
- 78.4136827365 0.9455714134 0.05
- 78.4334866973 0.9471064292 0.05
- 78.4532906581 0.9483657552 0.05
- 78.4730946189 0.9493647366 0.05
- 78.4928985797 0.9500772216 0.05
- 78.5127025405 0.9505139133 0.05
- 78.5325065013 0.9506441766 0.05
- 78.5523104621 0.9504058302 0.05
- 78.5721144229 0.9497569151 0.05
- 78.5919183837 0.9486544256 0.05
- 78.6117223445 0.9469691847 0.05
- 78.6315263053 0.9446620256 0.05
- 78.6513302661 0.9417062755 0.05
- 78.6711342268 0.9380044767 0.05
- 78.6909381876 0.9335682455 0.05
- 78.7107421484 0.9283976728 0.05
- 78.7305461092 0.9225142772 0.05
- 78.75035007 0.9160544228 0.05
- 78.7701540308 0.9091638198 0.05
- 78.7899579916 0.9020740008 0.05
- 78.8097619524 0.8948976399 0.05
- 78.8295659132 0.8879261635 0.05
- 78.849369874 0.8813774369 0.05
- 78.8691738348 0.8755585048 0.05
- 78.8889777956 0.8706299377 0.05
- 78.9087817564 0.8668434406 0.05
- 78.9285857171 0.8645109025 0.05
- 78.9483896779 0.8634165043 0.05
- 78.9681936387 0.8639078956 0.05
- 78.9879975995 0.8657649433 0.05
- 79.0078015603 0.8690297099 0.05
- 79.0276055211 0.8735448047 0.05
- 79.0474094819 0.8790522525 0.05
- 79.0672134427 0.8854153553 0.05
- 79.0870174035 0.8923854274 0.05
- 79.1068213643 0.8996560709 0.05
- 79.1266253251 0.9070200892 0.05
- 79.1464292859 0.9143120434 0.05
- 79.1662332466 0.9212811415 0.05
- 79.1860372074 0.9277527819 0.05
- 79.2058411682 0.9336583724 0.05
- 79.225645129 0.9388733192 0.05
- 79.2454490898 0.943384486 0.05
- 79.2652530506 0.9471638718 0.05
- 79.2850570114 0.9502360671 0.05
- 79.3048609722 0.9526263439 0.05
- 79.324664933 0.9543926166 0.05
- 79.3444688938 0.9555407681 0.05
- 79.3642728546 0.9561446162 0.05
- 79.3840768154 0.9562114126 0.05
- 79.4038807762 0.9557845495 0.05
- 79.4236847369 0.9549198295 0.05
- 79.4434886977 0.9536086647 0.05
- 79.4632926585 0.9519453474 0.05
- 79.4830966193 0.9499732653 0.05
- 79.5029005801 0.9477425362 0.05
- 79.5227045409 0.9453584074 0.05
- 79.5425085017 0.9429025768 0.05
- 79.5623124625 0.9404909279 0.05
- 79.5821164233 0.9382282537 0.05
- 79.6019203841 0.9362684995 0.05
- 79.6217243449 0.9346498101 0.05
- 79.6415283057 0.9335306059 0.05
- 79.6613322665 0.9329631734 0.05
- 79.6811362272 0.9329389883 0.05
- 79.700940188 0.9335102664 0.05
- 79.7207441488 0.934617542 0.05
- 79.7405481096 0.9362513346 0.05
- 79.7603520704 0.9382723611 0.05
- 79.7801560312 0.9406374926 0.05
- 79.799959992 0.9431598604 0.05
- 79.8197639528 0.94576837 0.05
- 79.8395679136 0.9483491363 0.05
- 79.8593718744 0.9508425953 0.05
- 79.8791758352 0.9531169462 0.05
- 79.898979796 0.9551418242 0.05
- 79.9187837568 0.9568614093 0.05
- 79.9385877175 0.9582403589 0.05
- 79.9583916783 0.9592711855 0.05
- 79.9781956391 0.95996361 0.05
- 79.9979995999 0.9603107154 0.05
- 80.0178035607 0.9603423155 0.05
- 80.0376075215 0.9600571136 0.05
- 80.0574114823 0.9594715441 0.05
- 80.0772154431 0.9585978716 0.05
- 80.0970194039 0.9574654234 0.05
- 80.1168233647 0.9560708925 0.05
- 80.1366273255 0.9544593674 0.05
- 80.1564312863 0.9526407178 0.05
- 80.176235247 0.9506720029 0.05
- 80.1960392078 0.9486073292 0.05
- 80.2158431686 0.9464845589 0.05
- 80.2356471294 0.9443943488 0.05
- 80.2554510902 0.9423454053 0.05
- 80.275255051 0.9404848569 0.05
- 80.2950590118 0.9387923039 0.05
- 80.3148629726 0.937364324 0.05
- 80.3346669334 0.9362096888 0.05
- 80.3544708942 0.9353043006 0.05
- 80.374274855 0.9346259463 0.05
- 80.3940788158 0.9340551336 0.05
- 80.4138827766 0.9334709679 0.05
- 80.4336867373 0.9327116111 0.05
- 80.4534906981 0.9315599812 0.05
- 80.4732946589 0.9298161983 0.05
- 80.4930986197 0.9272776582 0.05
- 80.5129025805 0.9237260971 0.05
- 80.5327065413 0.9190428196 0.05
- 80.5525105021 0.9132194227 0.05
- 80.5723144629 0.9063205477 0.05
- 80.5921184237 0.8983916546 0.05
- 80.6119223845 0.889873453 0.05
- 80.6317263453 0.8809739961 0.05
- 80.6515303061 0.8722106846 0.05
- 80.6713342669 0.8641096115 0.05
- 80.6911382276 0.8570506747 0.05
- 80.7109421884 0.8515896815 0.05
- 80.7307461492 0.8479093364 0.05
- 80.75055011 0.8463858977 0.05
- 80.7703540708 0.8472309047 0.05
- 80.7901580316 0.8502289054 0.05
- 80.8099619924 0.8553152486 0.05
- 80.8297659532 0.8622900494 0.05
- 80.849569914 0.8707227722 0.05
- 80.8693738748 0.8802240204 0.05
- 80.8891778356 0.8902430333 0.05
- 80.9089817964 0.9005137947 0.05
- 80.9287857572 0.9104264631 0.05
- 80.9485897179 0.9198166633 0.05
- 80.9683936787 0.9282786073 0.05
- 80.9881976395 0.9356882838 0.05
- 81.0080016003 0.9419429125 0.05
- 81.0278055611 0.9469974636 0.05
- 81.0476095219 0.9508960117 0.05
- 81.0674134827 0.9537490656 0.05
- 81.0872174435 0.9555853637 0.05
- 81.1070214043 0.9565572816 0.05
- 81.1268253651 0.9567334715 0.05
- 81.1466293259 0.9562261059 0.05
- 81.1664332867 0.9551008475 0.05
- 81.1862372474 0.9534637305 0.05
- 81.2060412082 0.9513492802 0.05
- 81.225845169 0.9488592182 0.05
- 81.2456491298 0.9460825434 0.05
- 81.2654530906 0.9431130899 0.05
- 81.2852570514 0.9400521153 0.05
- 81.3050610122 0.936971075 0.05
- 81.324864973 0.9340492693 0.05
- 81.3446689338 0.9313854688 0.05
- 81.3644728946 0.929107828 0.05
- 81.3842768554 0.9272912366 0.05
- 81.4040808162 0.9260864138 0.05
- 81.423884777 0.9254821245 0.05
- 81.4436887377 0.9255630626 0.05
- 81.4634926985 0.9262961756 0.05
- 81.4832966593 0.927691676 0.05
- 81.5031006201 0.9296551077 0.05
- 81.5229045809 0.9321085259 0.05
- 81.5427085417 0.9349573973 0.05
- 81.5625125025 0.9380801439 0.05
- 81.5823164633 0.9413495952 0.05
- 81.6021204241 0.944692679 0.05
- 81.6219243849 0.9479870072 0.05
- 81.6417283457 0.9511428237 0.05
- 81.6615323065 0.9541168865 0.05
- 81.6813362673 0.9568323705 0.05
- 81.701140228 0.9592773908 0.05
- 81.7209441888 0.9614244965 0.05
- 81.7407481496 0.9632947151 0.05
- 81.7605521104 0.964900072 0.05
- 81.7803560712 0.9662391545 0.05
- 81.800160032 0.9673690058 0.05
- 81.8199639928 0.968297838 0.05
- 81.8397679536 0.9690576981 0.05
- 81.8595719144 0.9696663909 0.05
- 81.8793758752 0.9701449902 0.05
- 81.899179836 0.9705175119 0.05
- 81.9189837968 0.97079879 0.05
- 81.9387877576 0.9709939536 0.05
- 81.9585917183 0.9711234765 0.05
- 81.9783956791 0.9711806211 0.05
- 81.9981996399 0.9711795811 0.05
- 82.0180036007 0.971116136 0.05
- 82.0378075615 0.9709961235 0.05
- 82.0576115223 0.9708021012 0.05
- 82.0774154831 0.9705403579 0.05
- 82.0972194439 0.9701991147 0.05
- 82.1170234047 0.9697717585 0.05
- 82.1368273655 0.9692446617 0.05
- 82.1566313263 0.9685964387 0.05
- 82.1764352871 0.9678063607 0.05
- 82.1962392478 0.9668426088 0.05
- 82.2160432086 0.9656762962 0.05
- 82.2358471694 0.9642592083 0.05
- 82.2556511302 0.962561277 0.05
- 82.275455091 0.9605220455 0.05
- 82.2952590518 0.9580698493 0.05
- 82.3150630126 0.9550984251 0.05
- 82.3348669734 0.9515663073 0.05
- 82.3546709342 0.9473448108 0.05
- 82.374474895 0.9423311869 0.05
- 82.3942788558 0.9364167384 0.05
- 82.4140828166 0.9294981318 0.05
- 82.4338867774 0.9214893979 0.05
- 82.4536907381 0.912294925 0.05
- 82.4734946989 0.9017597732 0.05
- 82.4932986597 0.8898631002 0.05
- 82.5131026205 0.8765510232 0.05
- 82.5329065813 0.8615749529 0.05
- 82.5527105421 0.844840553 0.05
- 82.5725145029 0.8263535554 0.05
- 82.5923184637 0.8058656486 0.05
- 82.6121224245 0.7834237832 0.05
- 82.6319263853 0.7589316062 0.05
- 82.6517303461 0.7322799568 0.05
- 82.6715343069 0.703836756 0.05
- 82.6913382677 0.6734999271 0.05
- 82.7111422284 0.6419250944 0.05
- 82.7309461892 0.6097209084 0.05
- 82.75075015 0.5774951311 0.05
- 82.7705541108 0.5461399039 0.05
- 82.7903580716 0.5163169372 0.05
- 82.8101620324 0.4885750395 0.05
- 82.8299659932 0.4637592499 0.05
- 82.849769954 0.4422021623 0.05
- 82.8695739148 0.4246254772 0.05
- 82.8893778756 0.4114203616 0.05
- 82.9091818364 0.4025259825 0.05
- 82.9289857972 0.3983092539 0.05
- 82.948789758 0.3988064522 0.05
- 82.9685937187 0.404078623 0.05
- 82.9883976795 0.4138556743 0.05
- 83.0082016403 0.4286285996 0.05
- 83.0280056011 0.4477408706 0.05
- 83.0478095619 0.4711400332 0.05
- 83.0676135227 0.4984912584 0.05
- 83.0874174835 0.5292400397 0.05
- 83.1072214443 0.5622404195 0.05
- 83.1270254051 0.5973447034 0.05
- 83.1468293659 0.6333820149 0.05
- 83.1666333267 0.6691558935 0.05
- 83.1864372875 0.7039451721 0.05
- 83.2062412482 0.7368014753 0.05
- 83.226045209 0.7670801181 0.05
- 83.2458491698 0.794219998 0.05
- 83.2656531306 0.8177580395 0.05
- 83.2854570914 0.8376836442 0.05
- 83.3052610522 0.854065088 0.05
- 83.325065013 0.8669384882 0.05
- 83.3448689738 0.8767578246 0.05
- 83.3646729346 0.8838847685 0.05
- 83.3844768954 0.8886041232 0.05
- 83.4042808562 0.8914718683 0.05
- 83.424084817 0.892839888 0.05
- 83.4438887778 0.8931378406 0.05
- 83.4636927385 0.8927145304 0.05
- 83.4834966993 0.8918918656 0.05
- 83.5033006601 0.8909810682 0.05
- 83.5231046209 0.8902281854 0.05
- 83.5429085817 0.889754659 0.05
- 83.5627125425 0.8896478371 0.05
- 83.5825165033 0.8900467654 0.05
- 83.6023204641 0.8908347371 0.05
- 83.6221244249 0.8920331769 0.05
- 83.6419283857 0.8935073888 0.05
- 83.6617323465 0.8951724728 0.05
- 83.6815363073 0.896891291 0.05
- 83.7013402681 0.8985087911 0.05
- 83.7211442288 0.8999808268 0.05
- 83.7409481896 0.9011250946 0.05
- 83.7607521504 0.9019011178 0.05
- 83.7805561112 0.9021918403 0.05
- 83.800360072 0.9020549868 0.05
- 83.8201640328 0.9014380717 0.05
- 83.8399679936 0.9004111771 0.05
- 83.8597719544 0.898912758 0.05
- 83.8795759152 0.8970402365 0.05
- 83.899379876 0.8948600296 0.05
- 83.9191838368 0.8924599082 0.05
- 83.9389877976 0.8898966905 0.05
- 83.9587917584 0.8872111342 0.05
- 83.9785957191 0.8844425509 0.05
- 83.9983996799 0.8816881613 0.05
- 84.0182036407 0.8790307227 0.05
- 84.0380076015 0.8765361494 0.05
- 84.0578115623 0.8741289295 0.05
- 84.0776155231 0.8721099837 0.05
- 84.0974194839 0.8702739856 0.05
- 84.1172234447 0.8687070661 0.05
- 84.1370274055 0.8676034461 0.05
- 84.1568313663 0.8668079373 0.05
- 84.1766353271 0.8663767772 0.05
- 84.1964392879 0.8663944372 0.05
- 84.2162432486 0.8667095026 0.05
- 84.2360472094 0.8674713094 0.05
- 84.2558511702 0.8685465035 0.05
- 84.275655131 0.8700401253 0.05
- 84.2954590918 0.8717688702 0.05
- 84.3152630526 0.8738471405 0.05
- 84.3350670134 0.8762059693 0.05
- 84.3548709742 0.878722387 0.05
- 84.374674935 0.8815855438 0.05
- 84.3944788958 0.8845358284 0.05
- 84.4142828566 0.8876747415 0.05
- 84.4340868174 0.8909160284 0.05
- 84.4538907782 0.8942132718 0.05
- 84.4736947389 0.8974862149 0.05
- 84.4934986997 0.9007583572 0.05
- 84.5133026605 0.9039144788 0.05
- 84.5331066213 0.9069187758 0.05
- 84.5529105821 0.9096156768 0.05
- 84.5727145429 0.9119508131 0.05
- 84.5925185037 0.9138545186 0.05
- 84.6123224645 0.915207222 0.05
- 84.6321264253 0.9159024675 0.05
- 84.6519303861 0.9158740799 0.05
- 84.6717343469 0.9149862315 0.05
- 84.6915383077 0.9131745393 0.05
- 84.7113422685 0.9103407184 0.05
- 84.7311462292 0.9063189731 0.05
- 84.75095019 0.9011051875 0.05
- 84.7707541508 0.8945899673 0.05
- 84.7905581116 0.8867437568 0.05
- 84.8103620724 0.8776003443 0.05
- 84.8301660332 0.8671723988 0.05
- 84.849969994 0.855551158 0.05
- 84.8697739548 0.8428989344 0.05
- 84.8895779156 0.8294314524 0.05
- 84.9093818764 0.8154023565 0.05
- 84.9291858372 0.8012528865 0.05
- 84.948989798 0.7873066617 0.05
- 84.9687937588 0.7739315741 0.05
- 84.9885977195 0.7614422794 0.05
- 85.0084016803 0.7504017815 0.05
- 85.0282056411 0.740989184 0.05
- 85.0480096019 0.7336039985 0.05
- 85.0678135627 0.7285506623 0.05
- 85.0876175235 0.7259672562 0.05
- 85.1074214843 0.7258444101 0.05
- 85.1272254451 0.7282130686 0.05
- 85.1470294059 0.7332118896 0.05
- 85.1668333667 0.7403943918 0.05
- 85.1866373275 0.7497929489 0.05
- 85.2064412883 0.7608474968 0.05
- 85.226245249 0.7734308782 0.05
- 85.2460492098 0.7869611914 0.05
- 85.2658531706 0.8011843305 0.05
- 85.2856571314 0.8156361566 0.05
- 85.3054610922 0.83000615 0.05
- 85.325265053 0.843901133 0.05
- 85.3450690138 0.856955928 0.05
- 85.3648729746 0.8690831509 0.05
- 85.3846769354 0.8800309315 0.05
- 85.4044808962 0.8897774557 0.05
- 85.424284857 0.8982033023 0.05
- 85.4440888178 0.9054235112 0.05
- 85.4638927786 0.9114911113 0.05
- 85.4836967393 0.9164657797 0.05
- 85.5035007001 0.9205150791 0.05
- 85.5233046609 0.923754231 0.05
- 85.5431086217 0.9263051925 0.05
- 85.5629125825 0.9282798117 0.05
- 85.5827165433 0.9298299531 0.05
- 85.6025205041 0.9310631313 0.05
- 85.6223244649 0.9320623541 0.05
- 85.6421284257 0.93293072 0.05
- 85.6619323865 0.9337189291 0.05
- 85.6817363473 0.934531043 0.05
- 85.7015403081 0.9354057653 0.05
- 85.7213442689 0.9363382147 0.05
- 85.7411482296 0.9373990098 0.05
- 85.7609521904 0.938598363 0.05
- 85.7807561512 0.9399278644 0.05
- 85.800560112 0.9414003176 0.05
- 85.8203640728 0.9429845177 0.05
- 85.8401680336 0.9446791874 0.05
- 85.8599719944 0.9464485719 0.05
- 85.8797759552 0.9482446604 0.05
- 85.899579916 0.9500708613 0.05
- 85.9193838768 0.9518779683 0.05
- 85.9391878376 0.9536564577 0.05
- 85.9589917984 0.9553592903 0.05
- 85.9787957592 0.9569827897 0.05
- 85.9985997199 0.9585042147 0.05
- 86.0184036807 0.9599208828 0.05
- 86.0382076415 0.961221533 0.05
- 86.0580116023 0.9624144123 0.05
- 86.0778155631 0.9634955137 0.05
- 86.0976195239 0.9644712528 0.05
- 86.1174234847 0.965341749 0.05
- 86.1372274455 0.9661198291 0.05
- 86.1570314063 0.9668200502 0.05
- 86.1768353671 0.9674450836 0.05
- 86.1966393279 0.9680002677 0.05
- 86.2164432887 0.9684970161 0.05
- 86.2362472494 0.9689317877 0.05
- 86.2560512102 0.9693143616 0.05
- 86.275855171 0.9696462887 0.05
- 86.2956591318 0.9699308222 0.05
- 86.3154630926 0.9701754128 0.05
- 86.3352670534 0.9703716989 0.05
- 86.3550710142 0.97051536 0.05
- 86.374874975 0.9705971431 0.05
- 86.3946789358 0.9706133802 0.05
- 86.4144828966 0.9705589369 0.05
- 86.4342868574 0.9704199926 0.05
- 86.4540908182 0.97019352 0.05
- 86.473894779 0.9698573413 0.05
- 86.4936987397 0.9694052169 0.05
- 86.5135027005 0.9688282917 0.05
- 86.5333066613 0.9681191001 0.05
- 86.5531106221 0.967258191 0.05
- 86.5729145829 0.9662580582 0.05
- 86.5927185437 0.9651253895 0.05
- 86.6125225045 0.9638859995 0.05
- 86.6323264653 0.9625462804 0.05
- 86.6521304261 0.9611334143 0.05
- 86.6719343869 0.9597024746 0.05
- 86.6917383477 0.9582793909 0.05
- 86.7115423085 0.95692154 0.05
- 86.7313462693 0.9556507603 0.05
- 86.75115023 0.9545395158 0.05
- 86.7709541908 0.9536298059 0.05
- 86.7907581516 0.9529418385 0.05
- 86.8105621124 0.9524893383 0.05
- 86.8303660732 0.9523256025 0.05
- 86.850170034 0.952386865 0.05
- 86.8699739948 0.9527103219 0.05
- 86.8897779556 0.9532599232 0.05
- 86.9095819164 0.9539944063 0.05
- 86.9293858772 0.9548762357 0.05
- 86.949189838 0.9558629312 0.05
- 86.9689937988 0.9569074365 0.05
- 86.9887977596 0.9579835991 0.05
- 87.0086017203 0.9590472267 0.05
- 87.0284056811 0.9600528698 0.05
- 87.0482096419 0.9609935492 0.05
- 87.0680136027 0.9618379153 0.05
- 87.0878175635 0.9625685732 0.05
- 87.1076215243 0.9631787898 0.05
- 87.1274254851 0.9636515232 0.05
- 87.1472294459 0.9640056556 0.05
- 87.1670334067 0.9642370233 0.05
- 87.1868373675 0.9643412429 0.05
- 87.2066413283 0.9643303794 0.05
- 87.2264452891 0.9642021343 0.05
- 87.2462492498 0.9639704038 0.05
- 87.2660532106 0.9636391724 0.05
- 87.2858571714 0.9632019312 0.05
- 87.3056611322 0.9626745163 0.05
- 87.325465093 0.9620778451 0.05
- 87.3452690538 0.9614002215 0.05
- 87.3650730146 0.9606787184 0.05
- 87.3848769754 0.9599004299 0.05
- 87.4046809362 0.9591206771 0.05
- 87.424484897 0.9583317568 0.05
- 87.4442888578 0.9575387866 0.05
- 87.4640928186 0.9568048836 0.05
- 87.4838967794 0.9561224566 0.05
- 87.5037007401 0.9555176376 0.05
- 87.5235047009 0.9550247745 0.05
- 87.5433086617 0.9546589487 0.05
- 87.5631126225 0.9544312224 0.05
- 87.5829165833 0.9543203624 0.05
- 87.6027205441 0.9543787504 0.05
- 87.6225245049 0.9545829426 0.05
- 87.6423284657 0.9549224125 0.05
- 87.6621324265 0.9553847823 0.05
- 87.6819363873 0.9559561933 0.05
- 87.7017403481 0.9566262419 0.05
- 87.7215443089 0.9573726647 0.05
- 87.7413482697 0.9581517425 0.05
- 87.7611522304 0.9589540338 0.05
- 87.7809561912 0.959767998 0.05
- 87.800760152 0.9605588684 0.05
- 87.8205641128 0.9613188816 0.05
- 87.8403680736 0.9620221201 0.05
- 87.8601720344 0.9626537402 0.05
- 87.8799759952 0.9632136312 0.05
- 87.899779956 0.9636809623 0.05
- 87.9195839168 0.9640546328 0.05
- 87.9393878776 0.9643266451 0.05
- 87.9591918384 0.9645069476 0.05
- 87.9789957992 0.9645754519 0.05
- 87.99879976 0.9645555763 0.05
- 88.0186037207 0.9644363096 0.05
- 88.0384076815 0.9642170211 0.05
- 88.0582116423 0.9639130676 0.05
- 88.0780156031 0.9635190501 0.05
- 88.0978195639 0.9630355321 0.05
- 88.1176235247 0.9624689042 0.05
- 88.1374274855 0.9618268366 0.05
- 88.1572314463 0.9610862139 0.05
- 88.1770354071 0.9602760876 0.05
- 88.1968393679 0.9593694074 0.05
- 88.2166433287 0.9583757973 0.05
- 88.2364472895 0.9572863824 0.05
- 88.2562512503 0.9560992238 0.05
- 88.276055211 0.9547867427 0.05
- 88.2958591718 0.9533778494 0.05
- 88.3156631326 0.9518394358 0.05
- 88.3354670934 0.9501497891 0.05
- 88.3552710542 0.9483420151 0.05
- 88.375075015 0.9463973802 0.05
- 88.3948789758 0.9442864539 0.05
- 88.4146829366 0.9420506811 0.05
- 88.4344868974 0.9396673085 0.05
- 88.4542908582 0.9372150076 0.05
- 88.474094819 0.9346142428 0.05
- 88.4938987798 0.931986969 0.05
- 88.5137027405 0.9293231161 0.05
- 88.5335067013 0.926681627 0.05
- 88.5533106621 0.9240276115 0.05
- 88.5731146229 0.9214490466 0.05
- 88.5929185837 0.9189803375 0.05
- 88.6127225445 0.9166831755 0.05
- 88.6325265053 0.9145864407 0.05
- 88.6523304661 0.9127179957 0.05
- 88.6721344269 0.9111011555 0.05
- 88.6919383877 0.909816945 0.05
- 88.7117423485 0.9088458285 0.05
- 88.7315463093 0.9082259107 0.05
- 88.7513502701 0.9079421596 0.05
- 88.7711542308 0.9079636669 0.05
- 88.7909581916 0.9083412064 0.05
- 88.8107621524 0.9089613021 0.05
- 88.8305661132 0.9099036105 0.05
- 88.850370074 0.9110690727 0.05
- 88.8701740348 0.9123992224 0.05
- 88.8899779956 0.9138857282 0.05
- 88.9097819564 0.9154700852 0.05
- 88.9295859172 0.9170890492 0.05
- 88.949389878 0.9187387239 0.05
- 88.9691938388 0.9203166574 0.05
- 88.9889977996 0.921845471 0.05
- 89.0088017604 0.9232855609 0.05
- 89.0286057211 0.9246169431 0.05
- 89.0484096819 0.9258296652 0.05
- 89.0682136427 0.926908271 0.05
- 89.0880176035 0.9277694396 0.05
- 89.1078215643 0.9284642492 0.05
- 89.1276255251 0.9289436988 0.05
- 89.1474294859 0.9291134838 0.05
- 89.1672334467 0.9289825014 0.05
- 89.1870374075 0.9284168498 0.05
- 89.2068413683 0.9273844744 0.05
- 89.2266453291 0.9257538085 0.05
- 89.2464492899 0.9234009032 0.05
- 89.2662532507 0.9202885196 0.05
- 89.2860572114 0.9162612767 0.05
- 89.3058611722 0.9112282355 0.05
- 89.325665133 0.905194466 0.05
- 89.3454690938 0.8981050426 0.05
- 89.3652730546 0.8900374818 0.05
- 89.3850770154 0.881018367 0.05
- 89.4048809762 0.8713266843 0.05
- 89.424684937 0.8611514785 0.05
- 89.4444888978 0.8508023442 0.05
- 89.4642928586 0.8403181959 0.05
- 89.4840968194 0.8302661513 0.05
- 89.5039007802 0.8208810899 0.05
- 89.5237047409 0.8125442907 0.05
- 89.5435087017 0.8053616769 0.05
- 89.5633126625 0.7996935069 0.05
- 89.5831166233 0.7957807807 0.05
- 89.6029205841 0.7936065696 0.05
- 89.6227245449 0.7933419988 0.05
- 89.6425285057 0.7948011565 0.05
- 89.6623324665 0.7982944964 0.05
- 89.6821364273 0.8032921451 0.05
- 89.7019403881 0.8097707466 0.05
- 89.7217443489 0.8176227195 0.05
- 89.7415483097 0.8265417905 0.05
- 89.7613522705 0.8362519837 0.05
- 89.7811562312 0.846439755 0.05
- 89.800960192 0.8569834616 0.05
- 89.8207641528 0.8675151757 0.05
- 89.8405681136 0.877824811 0.05
- 89.8603720744 0.8876907759 0.05
- 89.8801760352 0.8969225366 0.05
- 89.899979996 0.9053299084 0.05
- 89.9197839568 0.9127246244 0.05
- 89.9395879176 0.9189808378 0.05
- 89.9593918784 0.9240033673 0.05
- 89.9791958392 0.9276303184 0.05
- 89.9989998 0.9297207511 0.05
- 90.0188037608 0.9301241636 0.05
- 90.0386077215 0.9287272418 0.05
- 90.0584116823 0.92536491 0.05
- 90.0782156431 0.9199777303 0.05
- 90.0980196039 0.9124575113 0.05
- 90.1178235647 0.9028637921 0.05
- 90.1376275255 0.8912766411 0.05
- 90.1574314863 0.8778802452 0.05
- 90.1772354471 0.8629748091 0.05
- 90.1970394079 0.8470442526 0.05
- 90.2168433687 0.830638788 0.05
- 90.2366473295 0.8142594712 0.05
- 90.2564512903 0.7985013359 0.05
- 90.2762552511 0.7839960523 0.05
- 90.2960592118 0.7713682209 0.05
- 90.3158631726 0.7611856309 0.05
- 90.3356671334 0.7538661496 0.05
- 90.3554710942 0.7496099412 0.05
- 90.375275055 0.7486989234 0.05
- 90.3950790158 0.7510447418 0.05
- 90.4148829766 0.7565482068 0.05
- 90.4346869374 0.7651601264 0.05
- 90.4544908982 0.7763101487 0.05
- 90.474294859 0.789490246 0.05
- 90.4940988198 0.8043756592 0.05
- 90.5139027806 0.8200695974 0.05
- 90.5337067413 0.8362979226 0.05
- 90.5535107021 0.8524364295 0.05
- 90.5733146629 0.8679164386 0.05
- 90.5931186237 0.882343725 0.05
- 90.6129225845 0.8954112061 0.05
- 90.6327265453 0.9069182247 0.05
- 90.6525305061 0.9167890105 0.05
- 90.6723344669 0.9250771308 0.05
- 90.6921384277 0.9317586879 0.05
- 90.7119423885 0.9370386844 0.05
- 90.7317463493 0.941052287 0.05
- 90.7515503101 0.9439603269 0.05
- 90.7713542709 0.9459069248 0.05
- 90.7911582316 0.9470225603 0.05
- 90.8109621924 0.9474560841 0.05
- 90.8307661532 0.947264412 0.05
- 90.850570114 0.946547203 0.05
- 90.8703740748 0.9453332009 0.05
- 90.8901780356 0.9436590976 0.05
- 90.9099819964 0.941533996 0.05
- 90.9297859572 0.9389710527 0.05
- 90.949589918 0.9359640103 0.05
- 90.9693938788 0.9325007079 0.05
- 90.9891978396 0.928533833 0.05
- 91.0090018004 0.9240818615 0.05
- 91.0288057612 0.9191350852 0.05
- 91.0486097219 0.9136869884 0.05
- 91.0684136827 0.9077758252 0.05
- 91.0882176435 0.9013249694 0.05
- 91.1080216043 0.8944125224 0.05
- 91.1278255651 0.8870814 0.05
- 91.1476295259 0.8793762373 0.05
- 91.1674334867 0.8713938011 0.05
- 91.1872374475 0.8631994007 0.05
- 91.2070414083 0.8549669762 0.05
- 91.2268453691 0.846827622 0.05
- 91.2466493299 0.8389781106 0.05
- 91.2664532907 0.8314582311 0.05
- 91.2862572515 0.8245492006 0.05
- 91.3060612122 0.8184083904 0.05
- 91.325865173 0.8132303961 0.05
- 91.3456691338 0.8090445004 0.05
- 91.3654730946 0.8061165638 0.05
- 91.3852770554 0.8045179329 0.05
- 91.4050810162 0.8043064381 0.05
- 91.424884977 0.8055523997 0.05
- 91.4446889378 0.8083412411 0.05
- 91.4644928986 0.8124447237 0.05
- 91.4842968594 0.8179207927 0.05
- 91.5041008202 0.8246819362 0.05
- 91.523904781 0.8323669248 0.05
- 91.5437087417 0.8409675413 0.05
- 91.5635127025 0.8501896858 0.05
- 91.5833166633 0.8598167701 0.05
- 91.6031206241 0.8695014564 0.05
- 91.6229245849 0.8791463911 0.05
- 91.6427285457 0.8884760264 0.05
- 91.6625325065 0.8973510483 0.05
- 91.6823364673 0.9055285285 0.05
- 91.7021404281 0.9129450009 0.05
- 91.7219443889 0.9194530598 0.05
- 91.7417483497 0.9249848723 0.05
- 91.7615523105 0.9295839872 0.05
- 91.7813562713 0.933214732 0.05
- 91.801160232 0.9359363581 0.05
- 91.8209641928 0.9378134882 0.05
- 91.8407681536 0.9389487222 0.05
- 91.8605721144 0.939425526 0.05
- 91.8803760752 0.9393830327 0.05
- 91.900180036 0.9389614213 0.05
- 91.9199839968 0.9382530008 0.05
- 91.9397879576 0.9373978661 0.05
- 91.9595919184 0.9365381612 0.05
- 91.9793958792 0.9357669546 0.05
- 91.99919984 0.9351811824 0.05
- 92.0190038008 0.9348639319 0.05
- 92.0388077616 0.9348290467 0.05
- 92.0586117223 0.9351019444 0.05
- 92.0784156831 0.9356962098 0.05
- 92.0982196439 0.9365279411 0.05
- 92.1180236047 0.9375301852 0.05
- 92.1378275655 0.9385731091 0.05
- 92.1576315263 0.9396228296 0.05
- 92.1774354871 0.9405055682 0.05
- 92.1972394479 0.941064903 0.05
- 92.2170434087 0.941180391 0.05
- 92.2368473695 0.9407431232 0.05
- 92.2566513303 0.9395857992 0.05
- 92.2764552911 0.9376468416 0.05
- 92.2962592519 0.9348339434 0.05
- 92.3160632126 0.9311246709 0.05
- 92.3358671734 0.9264821245 0.05
- 92.3556711342 0.9210464491 0.05
- 92.375475095 0.914813597 0.05
- 92.3952790558 0.9080187457 0.05
- 92.4150830166 0.9008617477 0.05
- 92.4348869774 0.8935877385 0.05
- 92.4546909382 0.8864081876 0.05
- 92.474494899 0.8796780623 0.05
- 92.4942988598 0.8736368466 0.05
- 92.5141028206 0.8685197202 0.05
- 92.5339067814 0.8647648379 0.05
- 92.5537107421 0.8623296807 0.05
- 92.5735147029 0.8614888219 0.05
- 92.5933186637 0.8622292789 0.05
- 92.6131226245 0.864520062 0.05
- 92.6329265853 0.8683971578 0.05
- 92.6527305461 0.873511922 0.05
- 92.6725345069 0.879763129 0.05
- 92.6923384677 0.8869329214 0.05
- 92.7121424285 0.8946270682 0.05
- 92.7319463893 0.9026296822 0.05
- 92.7517503501 0.9106859737 0.05
- 92.7715543109 0.9185380833 0.05
- 92.7913582717 0.9260244581 0.05
- 92.8111622324 0.9328852304 0.05
- 92.8309661932 0.9390211071 0.05
- 92.850770154 0.9444128451 0.05
- 92.8705741148 0.9490055496 0.05
- 92.8903780756 0.9528062716 0.05
- 92.9101820364 0.9558996132 0.05
- 92.9299859972 0.9583044615 0.05
- 92.949789958 0.9601034281 0.05
- 92.9695939188 0.9613866059 0.05
- 92.9893978796 0.962220026 0.05
- 93.0092018404 0.9627021858 0.05
- 93.0290058012 0.962884868 0.05
- 93.048809762 0.962852296 0.05
- 93.0686137227 0.9626572934 0.05
- 93.0884176835 0.9623862986 0.05
- 93.1082216443 0.9620526626 0.05
- 93.1280256051 0.9617316801 0.05
- 93.1478295659 0.9614553441 0.05
- 93.1676335267 0.9612416594 0.05
- 93.1874374875 0.9611496485 0.05
- 93.2072414483 0.9611895515 0.05
- 93.2270454091 0.9613735162 0.05
- 93.2468493699 0.9617154411 0.05
- 93.2666533307 0.9621940196 0.05
- 93.2864572915 0.9628005889 0.05
- 93.3062612523 0.9635390412 0.05
- 93.326065213 0.9643767834 0.05
- 93.3458691738 0.9653095902 0.05
- 93.3656731346 0.9662837199 0.05
- 93.3854770954 0.9672731312 0.05
- 93.4052810562 0.9682788512 0.05
- 93.425085017 0.9692723874 0.05
- 93.4448889778 0.970210061 0.05
- 93.4646929386 0.9710899689 0.05
- 93.4844968994 0.9718964985 0.05
- 93.5043008602 0.9725955389 0.05
- 93.524104821 0.9731770796 0.05
- 93.5439087818 0.9736307352 0.05
- 93.5637127425 0.9739253481 0.05
- 93.5835167033 0.9740387485 0.05
- 93.6033206641 0.9739291869 0.05
- 93.6231246249 0.9735605111 0.05
- 93.6429285857 0.9728667003 0.05
- 93.6627325465 0.9717663066 0.05
- 93.6825365073 0.9701725413 0.05
- 93.7023404681 0.9679761112 0.05
- 93.7221444289 0.965051822 0.05
- 93.7419483897 0.9612773694 0.05
- 93.7617523505 0.9565149516 0.05
- 93.7815563113 0.9506740461 0.05
- 93.8013602721 0.9436218906 0.05
- 93.8211642328 0.9353753953 0.05
- 93.8409681936 0.9259241833 0.05
- 93.8607721544 0.9153007873 0.05
- 93.8805761152 0.903768068 0.05
- 93.900380076 0.8915658067 0.05
- 93.9201840368 0.8789839426 0.05
- 93.9399879976 0.8664125676 0.05
- 93.9597919584 0.854326741 0.05
- 93.9795959192 0.8430887018 0.05
- 93.99939988 0.8331475073 0.05
- 94.0192038408 0.8249856524 0.05
- 94.0390078016 0.8188075653 0.05
- 94.0588117624 0.8150448287 0.05
- 94.0786157231 0.813702234 0.05
- 94.0984196839 0.8147626539 0.05
- 94.1182236447 0.8183268778 0.05
- 94.1380276055 0.824209719 0.05
- 94.1578315663 0.8319936329 0.05
- 94.1776355271 0.8414448423 0.05
- 94.1974394879 0.852200686 0.05
- 94.2172434487 0.8637084124 0.05
- 94.2370474095 0.8756439958 0.05
- 94.2568513703 0.8876460245 0.05
- 94.2766553311 0.8992071962 0.05
- 94.2964592919 0.9101457276 0.05
- 94.3162632527 0.9201337559 0.05
- 94.3360672134 0.9290106896 0.05
- 94.3558711742 0.9367190607 0.05
- 94.375675135 0.9432517112 0.05
- 94.3954790958 0.9485960268 0.05
- 94.4152830566 0.9528368295 0.05
- 94.4350870174 0.9560655011 0.05
- 94.4548909782 0.9584138411 0.05
- 94.474694939 0.9599744156 0.05
- 94.4944988998 0.9608588901 0.05
- 94.5143028606 0.9611861446 0.05
- 94.5341068214 0.9610626318 0.05
- 94.5539107822 0.9605516414 0.05
- 94.5737147429 0.9597570859 0.05
- 94.5935187037 0.9587990426 0.05
- 94.6133226645 0.95771341 0.05
- 94.6331266253 0.9566157667 0.05
- 94.6529305861 0.9555399441 0.05
- 94.6727345469 0.9545961286 0.05
- 94.6925385077 0.9538093596 0.05
- 94.7123424685 0.9532486641 0.05
- 94.7321464293 0.9529429691 0.05
- 94.7519503901 0.95290989 0.05
- 94.7717543509 0.9531632884 0.05
- 94.7915583117 0.953681158 0.05
- 94.8113622725 0.9544506321 0.05
- 94.8311662332 0.9554288852 0.05
- 94.850970194 0.9565597236 0.05
- 94.8707741548 0.957787316 0.05
- 94.8905781156 0.9590853145 0.05
- 94.9103820764 0.9603859431 0.05
- 94.9301860372 0.9616427606 0.05
- 94.949989998 0.9628130138 0.05
- 94.9697939588 0.9638639743 0.05
- 94.9895979196 0.9647715839 0.05
- 95.0094018804 0.9655121564 0.05
- 95.0292058412 0.9660797323 0.05
- 95.049009802 0.9664800985 0.05
- 95.0688137628 0.966707747 0.05
- 95.0886177235 0.9667743211 0.05
- 95.1084216843 0.9666957866 0.05
- 95.1282256451 0.9664856172 0.05
- 95.1480296059 0.9661414242 0.05
- 95.1678335667 0.9656802343 0.05
- 95.1876375275 0.9651312139 0.05
- 95.2074414883 0.9644982083 0.05
- 95.2272454491 0.9637875252 0.05
- 95.2470494099 0.9630200102 0.05
- 95.2668533707 0.9621953498 0.05
- 95.2866573315 0.9613517952 0.05
- 95.3064612923 0.9604675972 0.05
- 95.3262652531 0.9595691351 0.05
- 95.3460692138 0.9586732368 0.05
- 95.3658731746 0.9577769394 0.05
- 95.3856771354 0.9569015043 0.05
- 95.4054810962 0.9560467221 0.05
- 95.425285057 0.9552451251 0.05
- 95.4450890178 0.9544943184 0.05
- 95.4648929786 0.9538253591 0.05
- 95.4846969394 0.9532310286 0.05
- 95.5045009002 0.9527284477 0.05
- 95.524304861 0.9523233195 0.05
- 95.5441088218 0.9520279112 0.05
- 95.5639127826 0.9518639653 0.05
- 95.5837167433 0.9517970693 0.05
- 95.6035207041 0.9518612726 0.05
- 95.6233246649 0.9520218286 0.05
- 95.6431286257 0.9522577248 0.05
- 95.6629325865 0.9526105548 0.05
- 95.6827365473 0.9530499309 0.05
- 95.7025405081 0.9535252922 0.05
- 95.7223444689 0.9540681744 0.05
- 95.7421484297 0.9546110221 0.05
- 95.7619523905 0.9552005834 0.05
- 95.7817563513 0.9557958767 0.05
- 95.8015603121 0.9563866769 0.05
- 95.8213642729 0.9569556202 0.05
- 95.8411682336 0.9574925284 0.05
- 95.8609721944 0.9579884178 0.05
- 95.8807761552 0.9584523705 0.05
- 95.900580116 0.9588579571 0.05
- 95.9203840768 0.9592347223 0.05
- 95.9401880376 0.9595387621 0.05
- 95.9599919984 0.9597927358 0.05
- 95.9797959592 0.9600096242 0.05
- 95.99959992 0.9601493804 0.05
- 96.0194038808 0.9602663362 0.05
- 96.0392078416 0.9603152514 0.05
- 96.0590118024 0.9603097887 0.05
- 96.0788157632 0.9602796142 0.05
- 96.0986197239 0.9601704423 0.05
- 96.1184236847 0.9600216714 0.05
- 96.1382276455 0.9598295884 0.05
- 96.1580316063 0.9595791853 0.05
- 96.1778355671 0.9592950832 0.05
- 96.1976395279 0.9589446429 0.05
- 96.2174434887 0.9585824154 0.05
- 96.2372474495 0.958174759 0.05
- 96.2570514103 0.9577671816 0.05
- 96.2768553711 0.9573462677 0.05
- 96.2966593319 0.9569086193 0.05
- 96.3164632927 0.956465413 0.05
- 96.3362672535 0.956065959 0.05
- 96.3560712142 0.9556659454 0.05
- 96.375875175 0.9552855213 0.05
- 96.3956791358 0.9549301228 0.05
- 96.4154830966 0.9546060251 0.05
- 96.4352870574 0.9542645101 0.05
- 96.4550910182 0.953936089 0.05
- 96.474894979 0.9535636466 0.05
- 96.4946989398 0.9531050948 0.05
- 96.5145029006 0.9525156799 0.05
- 96.5343068614 0.9517618831 0.05
- 96.5541108222 0.9507684503 0.05
- 96.573914783 0.9494516807 0.05
- 96.5937187437 0.9477713652 0.05
- 96.6135227045 0.945577531 0.05
- 96.6333266653 0.9428665903 0.05
- 96.6531306261 0.9394757445 0.05
- 96.6729345869 0.9353763453 0.05
- 96.6927385477 0.9305214698 0.05
- 96.7125425085 0.9248870691 0.05
- 96.7323464693 0.9184628632 0.05
- 96.7521504301 0.9113132082 0.05
- 96.7719543909 0.9035376611 0.05
- 96.7917583517 0.8952175069 0.05
- 96.8115623125 0.8865693585 0.05
- 96.8313662733 0.8777911214 0.05
- 96.851170234 0.8690265018 0.05
- 96.8709741948 0.8605700043 0.05
- 96.8907781556 0.852748828 0.05
- 96.9105821164 0.8456836741 0.05
- 96.9303860772 0.8396635959 0.05
- 96.950190038 0.8349398151 0.05
- 96.9699939988 0.8316333653 0.05
- 96.9897979596 0.8298389509 0.05
- 97.0096019204 0.8296692322 0.05
- 97.0294058812 0.8310023985 0.05
- 97.049209842 0.8340943583 0.05
- 97.0690138028 0.838506133 0.05
- 97.0888177636 0.8442202929 0.05
- 97.1086217243 0.8510735067 0.05
- 97.1284256851 0.8589156407 0.05
- 97.1482296459 0.8673758522 0.05
- 97.1680336067 0.8762845299 0.05
- 97.1878375675 0.8852893143 0.05
- 97.2076415283 0.8944093069 0.05
- 97.2274454891 0.9032506062 0.05
- 97.2472494499 0.911653257 0.05
- 97.2670534107 0.9194806239 0.05
- 97.2868573715 0.9266776052 0.05
- 97.3066613323 0.9331256335 0.05
- 97.3264652931 0.9387843023 0.05
- 97.3462692539 0.9436989289 0.05
- 97.3660732146 0.947894312 0.05
- 97.3858771754 0.9514010049 0.05
- 97.4056811362 0.954268343 0.05
- 97.425485097 0.9565564557 0.05
- 97.4452890578 0.9583408714 0.05
- 97.4650930186 0.9596730646 0.05
- 97.4848969794 0.9606147003 0.05
- 97.5047009402 0.9612190872 0.05
- 97.524504901 0.9615297101 0.05
- 97.5443088618 0.9615773016 0.05
- 97.5641128226 0.9613643568 0.05
- 97.5839167834 0.9609232362 0.05
- 97.6037207441 0.9602516263 0.05
- 97.6235247049 0.9593442502 0.05
- 97.6433286657 0.9581896151 0.05
- 97.6631326265 0.9567821995 0.05
- 97.6829365873 0.9550915231 0.05
- 97.7027405481 0.9530935608 0.05
- 97.7225445089 0.950770887 0.05
- 97.7423484697 0.9481036233 0.05
- 97.7621524305 0.9450331345 0.05
- 97.7819563913 0.9415884106 0.05
- 97.8017603521 0.9377493792 0.05
- 97.8215643129 0.9335158723 0.05
- 97.8413682737 0.9289374039 0.05
- 97.8611722344 0.9240137035 0.05
- 97.8809761952 0.9188530148 0.05
- 97.900780156 0.9135549933 0.05
- 97.9205841168 0.9081387366 0.05
- 97.9403880776 0.9027508536 0.05
- 97.9601920384 0.897500203 0.05
- 97.9799959992 0.8925275418 0.05
- 97.99979996 0.8878906901 0.05
- 98.0196039208 0.8838020663 0.05
- 98.0394078816 0.8802713558 0.05
- 98.0592118424 0.8773799077 0.05
- 98.0790158032 0.8752645681 0.05
- 98.098819764 0.8738292022 0.05
- 98.1186237247 0.8731952449 0.05
- 98.1384276855 0.873229744 0.05
- 98.1582316463 0.8738867688 0.05
- 98.1780356071 0.875165569 0.05
- 98.1978395679 0.876858659 0.05
- 98.2176435287 0.8789299144 0.05
- 98.2374474895 0.8812407458 0.05
- 98.2572514503 0.883680129 0.05
- 98.2770554111 0.8860485018 0.05
- 98.2968593719 0.8882960379 0.05
- 98.3166633327 0.8903960365 0.05
- 98.3364672935 0.8921271913 0.05
- 98.3562712543 0.8934963369 0.05
- 98.376075215 0.8944227874 0.05
- 98.3958791758 0.8948924296 0.05
- 98.4156831366 0.894771445 0.05
- 98.4354870974 0.8940884691 0.05
- 98.4552910582 0.8928617855 0.05
- 98.475095019 0.8909816208 0.05
- 98.4948989798 0.888462982 0.05
- 98.5147029406 0.8852571582 0.05
- 98.5345069014 0.881363469 0.05
- 98.5543108622 0.8766982122 0.05
- 98.574114823 0.8712076537 0.05
- 98.5939187838 0.8648409769 0.05
- 98.6137227445 0.8574811249 0.05
- 98.6335267053 0.8489910261 0.05
- 98.6533306661 0.8391694342 0.05
- 98.6731346269 0.8279522609 0.05
- 98.6929385877 0.8149040107 0.05
- 98.7127425485 0.7999092197 0.05
- 98.7325465093 0.7827964458 0.05
- 98.7523504701 0.7630023806 0.05
- 98.7721544309 0.7403011477 0.05
- 98.7919583917 0.7142642228 0.05
- 98.8117623525 0.6847187528 0.05
- 98.8315663133 0.6514107689 0.05
- 98.8513702741 0.6141245839 0.05
- 98.8711742348 0.5729581399 0.05
- 98.8909781956 0.5283181916 0.05
- 98.9107821564 0.4805792334 0.05
- 98.9305861172 0.4306836323 0.05
- 98.950390078 0.3799809454 0.05
- 98.9701940388 0.3291809804 0.05
- 98.9899979996 0.280178344 0.05
- 99.0098019604 0.2337857122 0.05
- 99.0296059212 0.1917203378 0.05
- 99.049409882 0.1542432654 0.05
- 99.0692138428 0.1222033992 0.05
- 99.0890178036 0.0955610116 0.05
- 99.1088217644 0.073983849 0.05
- 99.1286257251 0.0569392722 0.05
- 99.1484296859 0.0438237819 0.05
- 99.1682336467 0.0337697795 0.05
- 99.1880376075 0.0263499128 0.05
- 99.2078415683 0.0209488419 0.05
- 99.2276455291 0.0170015613 0.05
- 99.2474494899 0.0142285901 0.05
- 99.2672534507 0.0123302612 0.05
- 99.2870574115 0.0111036409 0.05
- 99.3068613723 0.0104477275 0.05
- 99.3266653331 0.0102541575 0.05
- 99.3464692939 0.0105526196 0.05
- 99.3662732547 0.0113260046 0.05
- 99.3860772154 0.012659836 0.05
- 99.4058811762 0.0146952424 0.05
- 99.425685137 0.0176291042 0.05
- 99.4454890978 0.0217279685 0.05
- 99.4652930586 0.0273771412 0.05
- 99.4850970194 0.0349806511 0.05
- 99.5049009802 0.0450416805 0.05
- 99.524704941 0.0581665277 0.05
- 99.5445089018 0.0750787602 0.05
- 99.5643128626 0.0960626864 0.05
- 99.5841168234 0.1216215644 0.05
- 99.6039207842 0.1520833639 0.05
- 99.6237247449 0.1870020468 0.05
- 99.6435287057 0.2260787413 0.05
- 99.6633326665 0.268343069 0.05
- 99.6831366273 0.3130607045 0.05
- 99.7029405881 0.3588666594 0.05
- 99.7227445489 0.4046617272 0.05
- 99.7425485097 0.449320709 0.05
- 99.7623524705 0.4921193366 0.05
- 99.7821564313 0.5325680299 0.05
- 99.8019603921 0.5698421452 0.05
- 99.8217643529 0.6037656042 0.05
- 99.8415683137 0.6345277781 0.05
- 99.8613722745 0.6621368765 0.05
- 99.8811762352 0.6866153386 0.05
- 99.900980196 0.7085823265 0.05
- 99.9207841568 0.7278092095 0.05
- 99.9405881176 0.7449031763 0.05
- 99.9603920784 0.7599862284 0.05
- 99.9801960392 0.7732466944 0.05
- 100.0 0.7849330752 0.05
diff --git a/Notes/Pleiades.notes b/legacy/Notes/Pleiades.notes
similarity index 100%
rename from Notes/Pleiades.notes
rename to legacy/Notes/Pleiades.notes
diff --git a/Notes/SammyInputFile.notes b/legacy/Notes/SammyInputFile.notes
similarity index 100%
rename from Notes/SammyInputFile.notes
rename to legacy/Notes/SammyInputFile.notes
diff --git a/Notes/SammyOutputLstFile.notes b/legacy/Notes/SammyOutputLstFile.notes
similarity index 100%
rename from Notes/SammyOutputLstFile.notes
rename to legacy/Notes/SammyOutputLstFile.notes
diff --git a/Notes/SammyParameterFile.notes b/legacy/Notes/SammyParameterFile.notes
similarity index 100%
rename from Notes/SammyParameterFile.notes
rename to legacy/Notes/SammyParameterFile.notes
diff --git a/docs/Makefile b/legacy/docs/Makefile
similarity index 100%
rename from docs/Makefile
rename to legacy/docs/Makefile
diff --git a/docs/conf.py b/legacy/docs/conf.py
similarity index 100%
rename from docs/conf.py
rename to legacy/docs/conf.py
diff --git a/docs/examples.rst b/legacy/docs/examples.rst
similarity index 100%
rename from docs/examples.rst
rename to legacy/docs/examples.rst
diff --git a/docs/index.rst b/legacy/docs/index.rst
similarity index 100%
rename from docs/index.rst
rename to legacy/docs/index.rst
diff --git a/docs/installation.rst b/legacy/docs/installation.rst
similarity index 100%
rename from docs/installation.rst
rename to legacy/docs/installation.rst
diff --git a/docs/make.bat b/legacy/docs/make.bat
similarity index 100%
rename from docs/make.bat
rename to legacy/docs/make.bat
diff --git a/docs/modules.rst b/legacy/docs/modules.rst
similarity index 100%
rename from docs/modules.rst
rename to legacy/docs/modules.rst
diff --git a/docs/overview.rst b/legacy/docs/overview.rst
similarity index 100%
rename from docs/overview.rst
rename to legacy/docs/overview.rst
diff --git a/docs/requirements.txt b/legacy/docs/requirements.txt
similarity index 100%
rename from docs/requirements.txt
rename to legacy/docs/requirements.txt
diff --git a/docs/usage.rst b/legacy/docs/usage.rst
similarity index 100%
rename from docs/usage.rst
rename to legacy/docs/usage.rst
diff --git a/examples/Notebooks/natEu_fit_tutorial.ipynb b/legacy/examples/Notebooks/natEu_fit_tutorial.ipynb
similarity index 99%
rename from examples/Notebooks/natEu_fit_tutorial.ipynb
rename to legacy/examples/Notebooks/natEu_fit_tutorial.ipynb
index e35eca7..4a691cc 100644
--- a/examples/Notebooks/natEu_fit_tutorial.ipynb
+++ b/legacy/examples/Notebooks/natEu_fit_tutorial.ipynb
@@ -30,7 +30,7 @@
"metadata": {},
"outputs": [],
"source": [
- "from pleiades import sammyUtils, sammyPlotter"
+ "from pleiades import sammyPlotter, sammyUtils"
]
},
{
diff --git a/examples/Notebooks/u_fit_tutorial.ipynb b/legacy/examples/Notebooks/u_fit_tutorial.ipynb
similarity index 93%
rename from examples/Notebooks/u_fit_tutorial.ipynb
rename to legacy/examples/Notebooks/u_fit_tutorial.ipynb
index b941c33..d095eee 100644
--- a/examples/Notebooks/u_fit_tutorial.ipynb
+++ b/legacy/examples/Notebooks/u_fit_tutorial.ipynb
@@ -28,7 +28,7 @@
"metadata": {},
"outputs": [],
"source": [
- "from pleiades import sammyUtils, sammyRunner, sammyOutput, sammyPlotter"
+ "from pleiades import sammyOutput, sammyPlotter, sammyRunner, sammyUtils"
]
},
{
@@ -72,7 +72,7 @@
"metadata": {},
"outputs": [],
"source": [
- "!ls -lah \n",
+ "!ls -lah\n",
"!ls -lah analysis"
]
},
@@ -238,9 +238,7 @@
"source": [
"# Plot the results\n",
"results_lst = uranium.params[\"directories\"][\"sammy_fit_dir\"] / \"results/SAMMY.LST\"\n",
- "sammyPlotter.process_and_plot_lst_file(\n",
- " results_lst, residual=True, quantity=\"transmission\"\n",
- ")"
+ "sammyPlotter.process_and_plot_lst_file(results_lst, residual=True, quantity=\"transmission\")"
]
},
{
@@ -273,14 +271,10 @@
"\n",
"# Update the isotope abundances with the new results from the SAMMY fit\n",
"for i, isotope in enumerate(uranium.params[\"isotopes\"][\"names\"]):\n",
- " uranium.params[\"isotopes\"][\"abundances\"][i] = float(\n",
- " uranium_fit._results[\"Iteration Results\"][-1][\"Nuclides\"][i][\"Abundance\"]\n",
- " )\n",
+ " uranium.params[\"isotopes\"][\"abundances\"][i] = float(uranium_fit._results[\"Iteration Results\"][-1][\"Nuclides\"][i][\"Abundance\"])\n",
"\n",
"# Update the sample thickness with the new results from the SAMMY fit\n",
- "uranium.params[\"broadening\"][\"thickness\"] = float(\n",
- " uranium_fit._results[\"Iteration Results\"][-1][\"Thickness\"]\n",
- ")\n",
+ "uranium.params[\"broadening\"][\"thickness\"] = float(uranium_fit._results[\"Iteration Results\"][-1][\"Thickness\"])\n",
"\n",
"# check your work!\n",
"print(f\"New Abundance: {uranium.params['isotopes']['abundances']}\")\n",
@@ -295,9 +289,7 @@
"outputs": [],
"source": [
"# Create new fit directory inside the working directory with the added isotope and its initial abundance\n",
- "uranium.params[\"directories\"][\"sammy_fit_dir\"] = (\n",
- " uranium.params[\"directories\"][\"working_dir\"] / \"u235-u238-ta181\"\n",
- ")\n",
+ "uranium.params[\"directories\"][\"sammy_fit_dir\"] = uranium.params[\"directories\"][\"working_dir\"] / \"u235-u238-ta181\"\n",
"\n",
"# check your work!\n",
"print(f\"New fit directory: {uranium.params['directories']['sammy_fit_dir']}\")\n",
@@ -429,9 +421,7 @@
"outputs": [],
"source": [
"# Grab the results from the SAMMY fit and plot the fit\n",
- "updated_results_lpt = (\n",
- " uranium.params[\"directories\"][\"sammy_fit_dir\"] / \"results/SAMMY.LPT\"\n",
- ")\n",
+ "updated_results_lpt = uranium.params[\"directories\"][\"sammy_fit_dir\"] / \"results/SAMMY.LPT\"\n",
"updated_uranium_fit = sammyOutput.lptResults(updated_results_lpt)\n",
"\n",
"updated_uranium_fit._print_iteration(-1)"
@@ -461,12 +451,8 @@
"outputs": [],
"source": [
"# Plot the results\n",
- "updated_results_lst = (\n",
- " uranium.params[\"directories\"][\"sammy_fit_dir\"] / \"results/SAMMY.LST\"\n",
- ")\n",
- "sammyPlotter.process_and_plot_lst_file(\n",
- " updated_results_lst, residual=True, quantity=\"transmission\"\n",
- ")"
+ "updated_results_lst = uranium.params[\"directories\"][\"sammy_fit_dir\"] / \"results/SAMMY.LST\"\n",
+ "sammyPlotter.process_and_plot_lst_file(updated_results_lst, residual=True, quantity=\"transmission\")"
]
},
{
diff --git a/examples/scripts/makeCompoundFit.py b/legacy/examples/scripts/makeCompoundFit.py
similarity index 73%
rename from examples/scripts/makeCompoundFit.py
rename to legacy/examples/scripts/makeCompoundFit.py
index 93535b0..7078fee 100644
--- a/examples/scripts/makeCompoundFit.py
+++ b/legacy/examples/scripts/makeCompoundFit.py
@@ -1,4 +1,4 @@
-from pleiades import sammyUtils, sammyRunner, sammyOutput, sammyPlotter
+from pleiades import sammyOutput, sammyPlotter, sammyRunner, sammyUtils
# Load the configuration file from the ini file in the parent directory
uranium = sammyUtils.SammyFitConfig("../configFiles/uranium.ini")
@@ -17,9 +17,7 @@
results_lpt = uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LPT"
results_lst = uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LST"
uranium_fit = sammyOutput.lptResults(results_lpt)
-sammyPlotter.process_and_plot_lst_file(
- results_lst, residual=True, quantity="transmission"
-)
+sammyPlotter.process_and_plot_lst_file(results_lst, residual=True, quantity="transmission")
# Print out the initial parameters for the isotopes (names and abundances)
print(f"Isotopes: {uranium.params['isotopes']['names']}")
@@ -28,23 +26,17 @@
# Update the isotope abundances with the new results from the SAMMY fit
for i, isotope in enumerate(uranium.params["isotopes"]["names"]):
- uranium.params["isotopes"]["abundances"][i] = float(
- uranium_fit._results["Iteration Results"][-1]["Nuclides"][i]["Abundance"]
- )
+ uranium.params["isotopes"]["abundances"][i] = float(uranium_fit._results["Iteration Results"][-1]["Nuclides"][i]["Abundance"])
# Update the sample thickness with the new results from the SAMMY fit
-uranium.params["broadening"]["thickness"] = float(
- uranium_fit._results["Iteration Results"][-1]["Thickness"]
-)
+uranium.params["broadening"]["thickness"] = float(uranium_fit._results["Iteration Results"][-1]["Thickness"])
# check your work!
print(f"New Abundance: {uranium.params['isotopes']['abundances']}")
print(f"New Thickness: {uranium.params['broadening']['thickness']}")
# Create new fit directory
-uranium.params["directories"]["sammy_fit_dir"] = (
- uranium.params["directories"]["working_dir"] / "u235-u238-ta181"
-)
+uranium.params["directories"]["sammy_fit_dir"] = uranium.params["directories"]["working_dir"] / "u235-u238-ta181"
# check your work!
print(f"New fit directory: {uranium.params['directories']['sammy_fit_dir']}")
@@ -69,13 +61,7 @@
sammyRunner.run_sammy_fit(sammy_run, verbose_level=1)
# Grab the results from the SAMMY fit and plot the fit
-updated_results_lpt = (
- uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LPT"
-)
-updated_results_lst = (
- uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LST"
-)
+updated_results_lpt = uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LPT"
+updated_results_lst = uranium.params["directories"]["sammy_fit_dir"] / "results/SAMMY.LST"
updated_uranium_fit = sammyOutput.lptResults(results_lpt)
-sammyPlotter.process_and_plot_lst_file(
- updated_results_lst, residual=True, quantity="transmission"
-)
+sammyPlotter.process_and_plot_lst_file(updated_results_lst, residual=True, quantity="transmission")
diff --git a/examples/scripts/simTransmission-U.py b/legacy/examples/scripts/simTransmission-U.py
similarity index 87%
rename from examples/scripts/simTransmission-U.py
rename to legacy/examples/scripts/simTransmission-U.py
index 0c666c6..240cfe1 100644
--- a/examples/scripts/simTransmission-U.py
+++ b/legacy/examples/scripts/simTransmission-U.py
@@ -1,8 +1,10 @@
import argparse
import sys # For parsing command line arguments
-import pleiades.simData as psd # For simulating neutron transmission spectra
-import numpy as np # For generating energy grids
+
import matplotlib.pyplot as plt
+import numpy as np # For generating energy grids
+
+import pleiades.simData as psd # For simulating neutron transmission spectra
def main(
@@ -66,21 +68,15 @@ def main(
if __name__ == "__main__":
- parser = argparse.ArgumentParser(
- description="Process config file for isotopes and plot transmission."
- )
+ parser = argparse.ArgumentParser(description="Process config file for isotopes and plot transmission.")
parser.add_argument(
"--isoConfig",
type=str,
default="config.ini",
help="Path to the isotope config file",
)
- parser.add_argument(
- "--energy_min", type=float, default=1, help="Minimum energy for the plot [eV]"
- )
- parser.add_argument(
- "--energy_max", type=float, default=100, help="Maximum energy for the plot [eV]"
- )
+ parser.add_argument("--energy_min", type=float, default=1, help="Minimum energy for the plot [eV]")
+ parser.add_argument("--energy_max", type=float, default=100, help="Maximum energy for the plot [eV]")
parser.add_argument(
"--energy_points",
type=int,
diff --git a/src/pleiades/nucData.py b/legacy/pleiades_old/nucData.py
similarity index 96%
rename from src/pleiades/nucData.py
rename to legacy/pleiades_old/nucData.py
index 47533b8..0e017f7 100644
--- a/src/pleiades/nucData.py
+++ b/legacy/pleiades_old/nucData.py
@@ -26,9 +26,7 @@ def extract_isotope_info(filename: str, isotope: str) -> tuple:
symbol = data[3] # Extract the element symbol
numOfNucleons = data[1] # Extract the number of nucleons
- if (
- isotope == f"{symbol}-{numOfNucleons}"
- ): # Check if the isotope matches
+ if isotope == f"{symbol}-{numOfNucleons}": # Check if the isotope matches
spin = data[5]
abundance = data[7]
return spin, abundance
@@ -138,9 +136,7 @@ def get_mass_from_ame(isotopic_str: str = "U-238", verbose_level: int = 0) -> fl
print(f"looking for isotope: {element}-{atomic_number}")
# Use Python 3.9's new feature to open the file from data files
- nucelar_masses_file = pkg_resources.files("pleiades").joinpath(
- "../../nucDataLibs/isotopeInfo/mass.mas20"
- )
+ nucelar_masses_file = pkg_resources.files("pleiades").joinpath("../../nucDataLibs/isotopeInfo/mass.mas20")
with open(nucelar_masses_file, "r") as f:
# Skip the first 36 lines of header info
for _ in range(36):
@@ -182,9 +178,7 @@ def get_mat_number(isotopic_str: str = "U-238") -> int:
element, atomic_number = get_info(isotopic_str)
# open the file containing the endf summary table
- nucelar_masses_file = pkg_resources.files("pleiades").joinpath(
- "../../nucDataLibs/isotopeInfo/neutrons.list"
- )
+ nucelar_masses_file = pkg_resources.files("pleiades").joinpath("../../nucDataLibs/isotopeInfo/neutrons.list")
with open(nucelar_masses_file, "r") as fid:
pattern = r"\b\s*(\d+)\s*-\s*([A-Za-z]+)\s*-\s*(\d+)([A-Za-z]*)\b" # match the isotope name
for line in fid:
diff --git a/src/pleiades/post_install.py b/legacy/pleiades_old/post_install.py
similarity index 86%
rename from src/pleiades/post_install.py
rename to legacy/pleiades_old/post_install.py
index cd201cc..bc0363e 100644
--- a/src/pleiades/post_install.py
+++ b/legacy/pleiades_old/post_install.py
@@ -24,15 +24,10 @@ def check_sammy_installed():
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,
)
- stdout, stderr = process.communicate(
- input=b"q\n"
- ) # Send 'q' (quit) followed by newline
+ stdout, stderr = process.communicate(input=b"q\n") # Send 'q' (quit) followed by newline
# Check for keywords in output indicating successful execution
- if (
- b"SAMMY Version" in stdout
- or b"What is the name of the INPut file" in stdout
- ):
+ if b"SAMMY Version" in stdout or b"What is the name of the INPut file" in stdout:
print("SAMMY is installed and available in the PATH.")
else:
print("SAMMY could not be launched or might not be installed correctly.")
diff --git a/src/pleiades/sammyInput.py b/legacy/pleiades_old/sammyInput.py
similarity index 91%
rename from src/pleiades/sammyInput.py
rename to legacy/pleiades_old/sammyInput.py
index 830fc84..27a0353 100644
--- a/src/pleiades/sammyInput.py
+++ b/legacy/pleiades_old/sammyInput.py
@@ -1,11 +1,12 @@
import configparser
-from pleiades import nucData as pnd
-from contextlib import suppress
import datetime
+from contextlib import suppress
+
+from pleiades import nucData
+from pleiades import nucData as pnd
# SammyFitConfig imports from PLEIADES
from pleiades.sammyStructures import SammyFitConfig
-from pleiades import nucData
print_header_check = "\033[1;34m\033[0m "
print_header_good = "\033[1;32m\033[0m "
@@ -15,9 +16,7 @@
class InputFile:
"""InputFile class for the Sammy input file."""
- def __init__(
- self, config_file: str = None, auto_update: bool = True, verbose_level: int = 0
- ) -> None:
+ def __init__(self, config_file: str = None, auto_update: bool = True, verbose_level: int = 0) -> None:
"""Reads an .ini config file to create a structured SAMMY inp file
If a string is not given for the config_file, the default values will be used
and a default SAMMY input file will be created.
@@ -35,19 +34,14 @@ def __init__(
# If config file is given, read the file and update the default parameters
if config_file is not None:
if verbose_level > 0:
- print(
- f"{print_header_check} Reading SAMMY input config file: {config_file}"
- )
+ print(f"{print_header_check} Reading SAMMY input config file: {config_file}")
# read the config file using configparser
self._config = configparser.ConfigParser()
self._config.read(config_file)
# turn the configparser object into a dict of dicts data-structure
- self._config_data = {
- section: dict(self._config[section])
- for section in self._config.sections()
- }
+ self._config_data = {section: dict(self._config[section]) for section in self._config.sections()}
# TODO: right now Card10 is not required
# since we are specifying spin group data in the par file
@@ -60,9 +54,7 @@ def __init__(
else:
if verbose_level > 0:
- print(
- f"{print_header_check} No input config file given. Using default parameters for input deck."
- )
+ print(f"{print_header_check} No input config file given. Using default parameters for input deck.")
# update auto values
self._update_and_calculate_values(auto_update=auto_update)
@@ -73,9 +65,7 @@ def __init__(
return
- def update_with_config(
- self, config: SammyFitConfig, isotope: str = "", for_endf: bool = False
- ) -> "InputFile":
+ def update_with_config(self, config: SammyFitConfig, isotope: str = "", for_endf: bool = False) -> "InputFile":
"""
Update the SAMMY input data with isotope-specific information and configuration.
@@ -96,18 +86,14 @@ def update_with_config(
# Set isotope and atomic weight (use auto to calculate if necessary)
self.data["Card2"]["elmnt"] = isotope
- self.data["Card2"]["aw"] = (
- "auto" # This will trigger auto calculation of atomic weight
- )
+ self.data["Card2"]["aw"] = "auto" # This will trigger auto calculation of atomic weight
self.data["Card2"]["emin"] = config.params["fit_energy_min"]
self.data["Card2"]["emax"] = config.params["fit_energy_max"]
# Set commands for Card3
if for_endf:
# Resetting the commands for running SAMMY to generate output par files based on ENDF.
- self.data["Card3"]["commands"] = (
- "TWENTY,DO NOT SOLVE BAYES EQUATIONS,INPUT IS ENDF/B FILE"
- )
+ self.data["Card3"]["commands"] = "TWENTY,DO NOT SOLVE BAYES EQUATIONS,INPUT IS ENDF/B FILE"
else:
self.data["Card3"]["commands"] = (
"CHI_SQUARED,TWENTY,SOLVE_BAYES,QUANTUM_NUMBERS,REICH-MOORE FORMALISm is wanted,GENERATE ODF FILE AUTOMATICALLY,USE I4 FORMAT TO READ SPIN GROUP NUMBER"
@@ -156,22 +142,14 @@ def process(self, auto_update: bool = True) -> "InputFile":
if par_width:
# Format parameter based on its type and width
if par_type == str: # noqa: E721
- line += self.format_type_A(
- self.data[card][parameter], par_width
- )
+ line += self.format_type_A(self.data[card][parameter], par_width)
elif par_type == int: # noqa: E721
- line += self.format_type_I(
- int(self.data[card][parameter]), par_width
- )
+ line += self.format_type_I(int(self.data[card][parameter]), par_width)
elif par_type == float: # noqa: E721
- line += self.format_type_F(
- float(self.data[card][parameter]), par_width
- )
+ line += self.format_type_F(float(self.data[card][parameter]), par_width)
else:
# Raise an error for unsupported parameter types
- raise ValueError(
- f"{print_header_bad} Parameter can only have float, int, or str types"
- )
+ raise ValueError(f"{print_header_bad} Parameter can only have float, int, or str types")
else:
# Handle free format cards like Card3
if card == "Card3":
@@ -418,9 +396,7 @@ def _update_and_calculate_values(self, auto_update: bool = True) -> None:
if auto_update and command.startswith("INPUT IS ENDF"):
commands[i] = f"INPUT IS ENDF/B FILE MAT={mat_number}"
if command.startswith("FILE="):
- self._resolution_commands = (
- f"USER-DEFINED RESOLUTION FUNCTION\n{command}\n"
- )
+ self._resolution_commands = f"USER-DEFINED RESOLUTION FUNCTION\n{command}\n"
commands.pop(i)
self.data["Card3"]["commands"] = ",".join(commands)
diff --git a/src/pleiades/sammyOutput.py b/legacy/pleiades_old/sammyOutput.py
similarity index 97%
rename from src/pleiades/sammyOutput.py
rename to legacy/pleiades_old/sammyOutput.py
index 626f0c0..a3ead4d 100644
--- a/src/pleiades/sammyOutput.py
+++ b/legacy/pleiades_old/sammyOutput.py
@@ -88,17 +88,13 @@ def preprocess_lpt_file(self):
for i, line in enumerate(lines):
# Extract general information
if line.startswith(" Emin and Emax ="):
- self._results["General"]["Emin"], self._results["General"]["Emax"] = (
- self._parse_emin_emax(line)
- )
+ self._results["General"]["Emin"], self._results["General"]["Emax"] = self._parse_emin_emax(line)
elif line.startswith(" TARGET ELEMENT IS"):
self._results["General"]["Target Element"] = line.split("IS")[1].strip()
elif line.startswith(" ATOMIC WEIGHT IS"):
self._results["General"]["Atomic Weight"] = line.split("IS")[1].strip()
elif line.startswith(" Number of nuclides is "):
- self._results["General"]["Number of nuclides"] = int(
- line.split("is")[1].strip()
- )
+ self._results["General"]["Number of nuclides"] = int(line.split("is")[1].strip())
# Identify the start of each iteration block
elif any(flag in line for flag in iteration_start_flags):
@@ -110,9 +106,7 @@ def preprocess_lpt_file(self):
end_line = iteration_start_lines[i + 1] - 1
else:
end_line = len(lines) - 1
- self._results["General"]["Iteration Block Lines"].append(
- [start_line, end_line]
- )
+ self._results["General"]["Iteration Block Lines"].append([start_line, end_line])
def grab_results_of_fits(self):
"""grabs the results of each iteration block and stores them in the results structure
@@ -153,9 +147,7 @@ def _parse_iteration_block(self, block_lines):
# If the line contains TEMPERATURE and THICKNESS, then their information is to follow (next line)
if "TEMPERATURE" in line and "THICKNESS" in line:
# Extract temperature and thickness from the line
- match = re.search(
- r"(\d+\.\d+E[+-]?\d+)\s+(\d+\.\d+E[+-]?\d+)", block_lines[i + 1]
- )
+ match = re.search(r"(\d+\.\d+E[+-]?\d+)\s+(\d+\.\d+E[+-]?\d+)", block_lines[i + 1])
if match:
iteration_result["Temperature"] = float(match.group(1))
iteration_result["Thickness"] = float(match.group(2))
@@ -191,12 +183,7 @@ def _parse_iteration_block(self, block_lines):
iteration_result["RedChi2"] = float(match.group(1))
# If the line contains Nuclide, Abundance, Mass, and Spin groups, then information on the nuclides is to follow
- elif (
- " Nuclide" in line
- and "Abundance" in line
- and "Mass" in line
- and "Spin groups" in line
- ):
+ elif " Nuclide" in line and "Abundance" in line and "Mass" in line and "Spin groups" in line:
# Extract nuclide information
for j in range(self._results["General"]["Number of nuclides"]):
iteration_result["Nuclides"].append(
@@ -255,9 +242,7 @@ def _print(self, iteration_index: int = None):
if 0 <= iteration_index < len(self._results["Iteration Results"]):
self._print_iteration(iteration_index)
else:
- print(
- f"Error: Invalid iteration index {iteration_index}. Valid range: 0 to {len(self._results['Iteration Results']) - 1}"
- )
+ print(f"Error: Invalid iteration index {iteration_index}. Valid range: 0 to {len(self._results['Iteration Results']) - 1}")
else:
# Print all iterations
for idx in range(len(self._results["Iteration Results"])):
@@ -481,7 +466,7 @@ def param_table(self, only_vary:bool = True,
params = {}
for line in parameter_lines:
- for match in re.compile(r'([0-9.]+(?:[eE][+-]?\d+)?)\s*\(\s*(\d+)\)').finditer(line):
+ for match in re.compile(r'([0-9.]+(?:[eE][+-]?\\d+)?)\\s*\\(\\s*(\\d+)\\)').finditer(line):
if match:
params[int(match.group(2))] = float(match.group(1))
diff --git a/src/pleiades/sammyParFile.py b/legacy/pleiades_old/sammyParFile.py
similarity index 87%
rename from src/pleiades/sammyParFile.py
rename to legacy/pleiades_old/sammyParFile.py
index 2394f21..ad3b466 100644
--- a/src/pleiades/sammyParFile.py
+++ b/legacy/pleiades_old/sammyParFile.py
@@ -16,10 +16,10 @@
# - Import the this class with 'from pleiades import sammyParFile'
# General imports
-import re
-import pathlib
import configparser
import json
+import pathlib
+import re
class ParFile:
@@ -275,18 +275,12 @@ def read(self) -> "ParFile":
if line.startswith("Name"):
if particle_pair:
particle_pair = " ".join(particle_pair)
- particle_pairs.append(
- particle_pair
- ) # stack particle pairs in list
+ particle_pairs.append(particle_pair) # stack particle pairs in list
particle_pair = []
particle_pair.append(line)
line = next(fid)
- particle_pair = " ".join(particle_pair)[
- :-1
- ] # remove the last '\n' character
- particle_pairs.append(
- particle_pair
- ) # stack the final particle pairs in list
+ particle_pair = " ".join(particle_pair)[:-1] # remove the last '\n' character
+ particle_pairs.append(particle_pair) # stack the final particle pairs in list
# read spin group and channel cards
if line.upper().startswith("SPIN GROUP INFO"):
@@ -373,9 +367,7 @@ def write(self, filename: str = "params.par") -> None:
os.makedirs(self.filename.parent, exist_ok=True)
if not self.data:
- raise RuntimeError(
- "self.data is empty, please run the self.read() method first"
- )
+ raise RuntimeError("self.data is empty, please run the self.read() method first")
lines = []
@@ -393,9 +385,7 @@ def write(self, filename: str = "params.par") -> None:
# first line is the spin group info
lines.append(self._write_spin_group(card[0]))
# number of channels for this group
- n_channels = int(card[0]["n_entrance_channel"]) + int(
- card[0]["n_exit_channel"]
- )
+ n_channels = int(card[0]["n_entrance_channel"]) + int(card[0]["n_exit_channel"])
for channel in range(1, n_channels + 1):
lines.append(self._write_spin_channel(card[channel]))
lines.append(" ")
@@ -446,29 +436,11 @@ def write(self, filename: str = "params.par") -> None:
if any(self.data["misc"].values()):
lines.append("MISCELLANEOUS PARAMETERS FOLLOW".ljust(80))
card = self.data["misc"]
- if any(
- [
- value
- for key, value in self.data["misc"].items()
- if key in self._MISC_DELTA_FORMAT
- ]
- ):
+ if any([value for key, value in self.data["misc"].items() if key in self._MISC_DELTA_FORMAT]):
lines.append(self._write_misc_delta(card))
- if any(
- [
- value
- for key, value in self.data["misc"].items()
- if key in self._MISC_TZERO_FORMAT
- ]
- ):
+ if any([value for key, value in self.data["misc"].items() if key in self._MISC_TZERO_FORMAT]):
lines.append(self._write_misc_tzero(card))
- if any(
- [
- value
- for key, value in self.data["misc"].items()
- if key in self._MISC_DELTE_FORMAT
- ]
- ):
+ if any([value for key, value in self.data["misc"].items() if key in self._MISC_DELTE_FORMAT]):
lines.append(self._write_misc_deltE(card))
lines.append(" " * 80)
lines.append("")
@@ -557,9 +529,7 @@ def __add__(self, isotope: "ParFile") -> "ParFile":
compound.data["isotopic_masses"].update(isotope.data["isotopic_masses"])
# update info
- isotopes = (
- compound.data["info"]["isotopes"] + isotope.data["info"]["isotopes"]
- )
+ isotopes = compound.data["info"]["isotopes"] + isotope.data["info"]["isotopes"]
compound.data["info"].update(isotope.data["info"])
compound.data["info"]["isotopes"] = isotopes
@@ -582,9 +552,7 @@ def _parse_spin_group_cards(self) -> None:
Returns: (list of dicts): list containing groups, each group is a dictionary containing key-value dicts for spin_groups and channels
"""
sg_dict = []
- lines = (
- line for line in self._spin_group_cards
- ) # convert to a generator object
+ lines = (line for line in self._spin_group_cards) # convert to a generator object
for line in lines:
# read each line
@@ -594,9 +562,7 @@ def _parse_spin_group_cards(self) -> None:
spin_group = [spin_group_dict]
# number of channels for this group
- n_channels = int(spin_group_dict["n_entrance_channel"]) + int(
- spin_group_dict["n_exit_channel"]
- )
+ n_channels = int(spin_group_dict["n_entrance_channel"]) + int(spin_group_dict["n_exit_channel"])
# loop over channels
for n in range(n_channels):
@@ -613,9 +579,7 @@ def _parse_spin_group_cards(self) -> None:
def _parse_channel_radii_cards(self) -> None:
"""parse a list of channel-radii and channel-groups cards and sort the key-word pairs"""
cr_data = []
- cards = (
- card for card in self._channel_radii_cards
- ) # convert to a generator object
+ cards = (card for card in self._channel_radii_cards) # convert to a generator object
# parse channel radii and groups using regex
cr_pattern = r"Radii=\s*([\d.]+),\s*([\d.]+)\s*Flags=\s*([\d]+),\s*([\d]+)"
@@ -634,9 +598,7 @@ def _parse_channel_radii_cards(self) -> None:
card = next(cards)
while match := re.search(cg_pattern, card):
group = int(match.group(1)) # Extract Group as an integer
- channels = [
- int(ch) for ch in match.group(2).split(",")
- ] # Extract Channels as a list of integers
+ channels = [int(ch) for ch in match.group(2).split(",")] # Extract Channels as a list of integers
cg_data.append([group] + channels)
@@ -662,19 +624,14 @@ def _parse_resonance_params_cards(self) -> None:
def _parse_isotopic_masses_cards(self) -> None:
"""parse a list of isotopic_masses cards, sort the key-word values"""
im_dicts = {}
- for isotope, card in zip(
- self.data["particle_pairs"], self._isotopic_masses_cards
- ):
+ for isotope, card in zip(self.data["particle_pairs"], self._isotopic_masses_cards):
im_dicts.update(**{isotope["name"]: self._read_isotopic_masses(card)})
self.data.update({"isotopic_masses": im_dicts})
def _read_particle_pairs(self, particle_pairs_line: str) -> dict:
# parse key-word pairs from a particle_pairs line
- particle_pairs_dict = {
- key: particle_pairs_line[value]
- for key, value in self._PARTICLE_PAIRS_FORMAT.items()
- }
+ particle_pairs_dict = {key: particle_pairs_line[value] for key, value in self._PARTICLE_PAIRS_FORMAT.items()}
return particle_pairs_dict
def _write_particle_pairs(self, particle_pairs_dict: dict) -> str:
@@ -686,17 +643,12 @@ def _write_particle_pairs(self, particle_pairs_dict: dict) -> str:
for key, slice_value in self._PARTICLE_PAIRS_FORMAT.items():
word_length = slice_value.stop - slice_value.start
# assign the fixed-format position with the corresponding key-word value
- new_text[slice_value] = list(
- str(particle_pairs_dict[key]).ljust(word_length)
- )
+ new_text[slice_value] = list(str(particle_pairs_dict[key]).ljust(word_length))
return "".join(new_text).replace("\n ", "\n")
def _read_spin_group(self, spin_group_line: str) -> dict:
# parse key-word pairs from a spin_group line
- spin_group_dict = {
- key: spin_group_line[value]
- for key, value in self._SPIN_GROUP_FORMAT.items()
- }
+ spin_group_dict = {key: spin_group_line[value] for key, value in self._SPIN_GROUP_FORMAT.items()}
return spin_group_dict
def _write_spin_group(self, spin_group_dict: dict) -> str:
@@ -710,10 +662,7 @@ def _write_spin_group(self, spin_group_dict: dict) -> str:
def _read_spin_channel(self, spin_channel_line: str) -> dict:
# parse key-word pairs from a spin-channel line
- spin_channel_dict = {
- key: spin_channel_line[value]
- for key, value in self._SPIN_CHANNEL_FORMAT.items()
- }
+ spin_channel_dict = {key: spin_channel_line[value] for key, value in self._SPIN_CHANNEL_FORMAT.items()}
return spin_channel_dict
def _write_spin_channel(self, spin_channel_dict: dict) -> str:
@@ -740,10 +689,7 @@ def _write_channel_radii(self, channel_radii_dict: dict) -> str:
def _read_resonance_params(self, resonance_params_line: str) -> dict:
# parse key-word pairs from a resonance_params line
- resonance_params_dict = {
- key: resonance_params_line[value]
- for key, value in self._RESONANCE_PARAMS_FORMAT.items()
- }
+ resonance_params_dict = {key: resonance_params_line[value] for key, value in self._RESONANCE_PARAMS_FORMAT.items()}
return resonance_params_dict
def _write_resonance_params(self, resonance_params_dict: dict) -> str:
@@ -752,17 +698,12 @@ def _write_resonance_params(self, resonance_params_dict: dict) -> str:
for key, slice_value in self._RESONANCE_PARAMS_FORMAT.items():
word_length = slice_value.stop - slice_value.start
# assign the fixed-format position with the corresponding key-word value
- new_text[slice_value] = list(
- str(resonance_params_dict[key]).ljust(word_length)
- )
+ new_text[slice_value] = list(str(resonance_params_dict[key]).ljust(word_length))
return "".join(new_text)
def _read_isotopic_masses(self, isotopic_masses_line: str) -> None:
# parse key-word pairs from a isotopic-masses line
- isotopic_masses_dict = {
- key: isotopic_masses_line[value]
- for key, value in self._ISOTOPIC_MASSES_FORMAT.items()
- }
+ isotopic_masses_dict = {key: isotopic_masses_line[value] for key, value in self._ISOTOPIC_MASSES_FORMAT.items()}
return isotopic_masses_dict
def _write_isotopic_masses(self, isotopic_masses_dict: dict) -> str:
@@ -771,9 +712,7 @@ def _write_isotopic_masses(self, isotopic_masses_dict: dict) -> str:
for key, slice_value in self._ISOTOPIC_MASSES_FORMAT.items():
word_length = slice_value.stop - slice_value.start
# assign the fixed-format position with the corresponding key-word value
- new_text[slice_value] = list(
- str(isotopic_masses_dict[key]).ljust(word_length)
- )
+ new_text[slice_value] = list(str(isotopic_masses_dict[key]).ljust(word_length))
return "".join(new_text)
def _write_normalization(self, normalization_dict: dict) -> str:
@@ -782,9 +721,7 @@ def _write_normalization(self, normalization_dict: dict) -> str:
for key, slice_value in self._NORMALIZATION_FORMAT.items():
word_length = slice_value.stop - slice_value.start
# assign the fixed-format position with the corresponding key-word value
- new_text[slice_value] = list(
- str(normalization_dict[key]).ljust(word_length)
- )
+ new_text[slice_value] = list(str(normalization_dict[key]).ljust(word_length))
return "".join(new_text)
def _write_broadening(self, broadening_dict: dict) -> str:
@@ -828,9 +765,7 @@ def _write_misc_deltE(self, misc_deltE_dict: dict) -> str:
def _write_resolution(self, resolution_dict: dict) -> str:
# write a formatted resolution line from dict with the key-word resolution values
- new_text = (
- [" "] * 80 + ["\n"]
- ) * 10 # 80 characters long list of spaces to be filled
+ new_text = ([" "] * 80 + ["\n"]) * 10 # 80 characters long list of spaces to be filled
resolution_dict["burst_keyword"] = "BURST"
resolution_dict["tau_keyword"] = resolution_dict["tau_keyword2"] = "TAU "
resolution_dict["lambd_keyword"] = resolution_dict["lambd_keyword2"] = "LAMBD"
@@ -840,9 +775,7 @@ def _write_resolution(self, resolution_dict: dict) -> str:
for key, slice_value in self._RESOLUTION_FORMAT.items():
word_length = slice_value.stop - slice_value.start
# assign the fixed-format position with the corresponding key-word value
- new_text[slice_value] = list(
- str(resolution_dict[key]).ljust(word_length)[:word_length]
- )
+ new_text[slice_value] = list(str(resolution_dict[key]).ljust(word_length)[:word_length])
return "".join(new_text)
@@ -870,19 +803,12 @@ def bump_group_number(self, increment: int = 0) -> None:
# bump isotopic masses
if self.parent.data["isotopic_masses"]:
for key, isotope in self.parent.data["isotopic_masses"].items():
- spin_groups = [
- f"{group[0]['group_number'].strip():>5}"
- for group in self.parent.data["spin_group"]
- ]
+ spin_groups = [f"{group[0]['group_number'].strip():>5}" for group in self.parent.data["spin_group"]]
sg_formatted = "".join(spin_groups[:8]).ljust(43)
- L = (
- (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1
- ) # number of extra lines needed
+ L = (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1 # number of extra lines needed
for l in range(0, L + 1): # noqa: E741
- sg_formatted += "-1\n" + "".join(
- spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]
- ).ljust(78)
+ sg_formatted += "-1\n" + "".join(spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]).ljust(78)
isotope["spin_groups"] = sg_formatted
def bump_igroup_number(self, increment: int = 0) -> None:
@@ -907,28 +833,17 @@ def isotopic_masses_abundance(self) -> None:
"""Update the isotopic masses data"""
if self.parent.data["isotopic_masses"]:
for card in self.parent.data["isotopic_masses"]:
- self.parent.data["isotopic_masses"][card]["abundance"] = (
- f"{f'{self.parent.weight:.7f}':>9}"[:9]
- )
+ self.parent.data["isotopic_masses"][card]["abundance"] = f"{f'{self.parent.weight:.7f}':>9}"[:9]
else:
- spin_groups = [
- f"{group[0]['group_number'].strip():>5}"
- for group in self.parent.data["spin_group"]
- ]
+ spin_groups = [f"{group[0]['group_number'].strip():>5}" for group in self.parent.data["spin_group"]]
sg_formatted = "".join(spin_groups[:8]).ljust(43)
- L = (
- (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1
- ) # number of extra lines needed
+ L = (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1 # number of extra lines needed
for l in range(0, L + 1): # noqa: E741
- sg_formatted += "-1\n" + "".join(
- spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]
- ).ljust(78)
+ sg_formatted += "-1\n" + "".join(spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]).ljust(78)
iso_dict = {
- "atomic_mass": f'{float(self.parent.data["particle_pairs"][0]["mass_b"]):>9}'[
- :9
- ],
+ "atomic_mass": f'{float(self.parent.data["particle_pairs"][0]["mass_b"]):>9}'[:9],
"abundance": f"{f'{self.parent.weight:.7f}':>9}"[:9],
"abundance_uncertainty": f"{'':>9}",
"vary_abundance": "1".ljust(5),
@@ -939,25 +854,15 @@ def isotopic_masses_abundance(self) -> None:
def define_as_element(self, name: str, weight: float = 1.0) -> None:
from numpy import average
- spin_groups = [
- f"{group[0]['group_number'].strip():>5}"
- for group in self.parent.data["spin_group"]
- ]
+ spin_groups = [f"{group[0]['group_number'].strip():>5}" for group in self.parent.data["spin_group"]]
sg_formatted = "".join(spin_groups[:8]).ljust(43)
- L = (
- (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1
- ) # number of extra lines needed
+ L = (len(spin_groups) - 8) // 15 if len(spin_groups) > 8 else -1 # number of extra lines needed
for l in range(0, L + 1): # noqa: E741
- sg_formatted += "-1\n" + "".join(
- spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]
- ).ljust(78)
+ sg_formatted += "-1\n" + "".join(spin_groups[8 + 15 * l : 8 + 15 * (l + 1)]).ljust(78)
aw = [float(i["mass_b"]) for i in self.parent.data["particle_pairs"]]
- weights = [
- float(self.parent.data["isotopic_masses"][i]["abundance"])
- for i in self.parent.data["isotopic_masses"]
- ]
+ weights = [float(self.parent.data["isotopic_masses"][i]["abundance"]) for i in self.parent.data["isotopic_masses"]]
aw = average(aw, weights=weights)
iso_dict = {
@@ -977,9 +882,7 @@ def toggle_vary_abundances(self, vary: bool = False) -> None:
vary (bool, optional): True will flag all abundances to vary
"""
for isotope in self.parent.data["isotopic_masses"]:
- self.parent.data["isotopic_masses"][isotope]["vary_abundance"] = (
- f"{vary:<5}"
- )
+ self.parent.data["isotopic_masses"][isotope]["vary_abundance"] = f"{vary:<5}"
self.parent.data["info"][f"vary_{isotope}"] = f"{vary:<5}"
def limit_energies_of_parfile(self) -> None:
@@ -989,9 +892,7 @@ def limit_energies_of_parfile(self) -> None:
for num, res in enumerate(self.parent.data["resonance_params"]):
# cast all numbers such as "3.6700-5" to floats
energy = (
- "e-".join(res["reosnance_energy"].split("-"))
- .lstrip("e")
- .replace("+", "e+")
+ "e-".join(res["reosnance_energy"].split("-")).lstrip("e").replace("+", "e+")
if "e" not in res["reosnance_energy"]
else res["reosnance_energy"]
)
@@ -1042,9 +943,7 @@ def limit_energies_of_parfile(self) -> None:
# reindex spin groups
for group in self.parent.data["spin_group"]:
- group[0]["group_number"] = (
- f"{index_map[group[0]['group_number'].strip()]:>3}"
- )
+ group[0]["group_number"] = f"{index_map[group[0]['group_number'].strip()]:>3}"
return
@@ -1090,20 +989,12 @@ def vary_resonances_in_energy_range(
for card in self.parent.data["resonance_params"]:
if emin <= float(card["reosnance_energy"]) <= emax:
card["vary_energy"] = f"{1:>2}" if vary_energies else f"{0:>2}"
- card["vary_capture_width"] = (
- f"{1:>2}" if vary_gamma_widths else f"{0:>2}"
- )
- card["vary_neutron_width"] = (
- f"{1:>2}" if vary_neutron_widths else f"{0:>2}"
- )
+ card["vary_capture_width"] = f"{1:>2}" if vary_gamma_widths else f"{0:>2}"
+ card["vary_neutron_width"] = f"{1:>2}" if vary_neutron_widths else f"{0:>2}"
if card["fission1_width"].strip():
- card["vary_fission1_width"] = (
- f"{1:>2}" if vary_fission_widths else f"{0:>2}"
- )
+ card["vary_fission1_width"] = f"{1:>2}" if vary_fission_widths else f"{0:>2}"
if card["fission2_width"].strip():
- card["vary_fission2_width"] = (
- f"{1:>2}" if vary_fission_widths else f"{0:>2}"
- )
+ card["vary_fission2_width"] = f"{1:>2}" if vary_fission_widths else f"{0:>2}"
def normalization(self, **kwargs) -> None:
"""change or vary normalization parameters and vary flags
@@ -1138,13 +1029,7 @@ def normalization(self, **kwargs) -> None:
"vary_exp_decay_bg": 0,
}
- self.parent.data["normalization"].update(
- {
- key: value
- for key, value in kwargs.items()
- if key in self.parent.data["normalization"]
- }
- )
+ self.parent.data["normalization"].update({key: value for key, value in kwargs.items() if key in self.parent.data["normalization"]})
def broadening(self, **kwargs) -> None:
"""change or vary broadening parameters and vary flags
@@ -1178,13 +1063,7 @@ def broadening(self, **kwargs) -> None:
"vary_deltae_us": 0,
}
- self.parent.data["broadening"].update(
- {
- key: value
- for key, value in kwargs.items()
- if key in self.parent.data["broadening"]
- }
- )
+ self.parent.data["broadening"].update({key: value for key, value in kwargs.items() if key in self.parent.data["broadening"]})
def misc(self, **kwargs) -> None:
"""change or vary misc parameters and vary flags
@@ -1226,13 +1105,7 @@ def misc(self, **kwargs) -> None:
"DlnE": "",
}
- self.parent.data["misc"].update(
- {
- key: value
- for key, value in kwargs.items()
- if key in self.parent.data["misc"]
- }
- )
+ self.parent.data["misc"].update({key: value for key, value in kwargs.items() if key in self.parent.data["misc"]})
def resolution(self, **kwargs) -> None:
"""change or vary resolution parameters and vary flags
@@ -1365,13 +1238,7 @@ def resolution(self, **kwargs) -> None:
"chann": "",
}
- self.parent.data["resolution"].update(
- {
- key: value
- for key, value in kwargs.items()
- if key in self.parent.data["resolution"]
- }
- )
+ self.parent.data["resolution"].update({key: value for key, value in kwargs.items() if key in self.parent.data["resolution"]})
def vary_all(self, vary=True, data_key="misc_delta"):
"""toggle all vary parameters in a data keyword to either vary/fixed
@@ -1387,9 +1254,7 @@ def vary_all(self, vary=True, data_key="misc_delta"):
"""
keyword = data_key.split("_")[0]
data_dict = getattr(self.parent, f"_{data_key.upper()}_FORMAT")
- self.parent.data[keyword].update(
- {key: int(vary) for key in data_dict if key.startswith("vary_")}
- )
+ self.parent.data[keyword].update({key: int(vary) for key in data_dict if key.startswith("vary_")})
def save_params_to_config(self) -> None:
# write the self.data dictionary to a config.ini file
diff --git a/src/pleiades/sammyPlotter.py b/legacy/pleiades_old/sammyPlotter.py
similarity index 91%
rename from src/pleiades/sammyPlotter.py
rename to legacy/pleiades_old/sammyPlotter.py
index a9cd4e1..3d6c39c 100644
--- a/src/pleiades/sammyPlotter.py
+++ b/legacy/pleiades_old/sammyPlotter.py
@@ -1,6 +1,6 @@
+import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
-import matplotlib.pyplot as plt
def process_and_plot_lst_file(filename, residual=False, quantity="cross-section"):
@@ -93,12 +93,8 @@ def plot_cross_section(data, residual=False):
ax[0].set_ylabel("Cross Section (barns)")
ax[0].legend()
- plt.plot(
- energy, diff_initial, label="Difference Initial", marker="o", linestyle="-"
- )
- plt.plot(
- energy, diff_final, label="Difference Final", marker="o", linestyle="-"
- )
+ plt.plot(energy, diff_initial, label="Difference Initial", marker="o", linestyle="-")
+ plt.plot(energy, diff_final, label="Difference Final", marker="o", linestyle="-")
plt.ylabel("Difference (barns)")
else:
@@ -188,13 +184,8 @@ def plot_transmission(data, residual=False):
ax[1].set_xticks([])
ax[1].set_yticks([], [])
- data["residual_initial"] = (
- data["Zeroth-order theoretical transmission"]
- - data["Experimental transmission"]
- )
- data["residual_final"] = (
- data["Final theoretical transmission"] - data["Experimental transmission"]
- )
+ data["residual_initial"] = data["Zeroth-order theoretical transmission"] - data["Experimental transmission"]
+ data["residual_final"] = data["Final theoretical transmission"] - data["Experimental transmission"]
# data.plot.scatter(x="Energy",y="residual_initial",yerr="Absolute uncertainty in experimental transmission",lw=0,ylim=(-10,10),color=initial_color,ax=ax[2],alpha=0.5,legend=False)
data.plot.scatter(
@@ -246,16 +237,12 @@ def plot_transmission(data, residual=False):
def read_data(filename):
# Load the data
- data = np.loadtxt(
- filename, delimiter=" ", skiprows=1
- ) # Assuming space delimited and one header row
+ data = np.loadtxt(filename, delimiter=" ", skiprows=1) # Assuming space delimited and one header row
# Check number of columns
num_cols = data.shape[1]
if num_cols != 13:
- raise ValueError(
- "Incorrect number of columns. Expected 13 but got {}".format(num_cols)
- )
+ raise ValueError(f"Incorrect number of columns. Expected 13 but got {num_cols}")
return data
diff --git a/src/pleiades/sammyRunner.py b/legacy/pleiades_old/sammyRunner.py
similarity index 92%
rename from src/pleiades/sammyRunner.py
rename to legacy/pleiades_old/sammyRunner.py
index 582d849..0c2d329 100644
--- a/src/pleiades/sammyRunner.py
+++ b/legacy/pleiades_old/sammyRunner.py
@@ -20,14 +20,15 @@
# with 'from pleiades.sammyStructures import SammyFitConfig'
# General imports
-import pathlib
+import datetime
import glob
import os
+import pathlib
import shutil
import subprocess
import textwrap
+
import numpy as np
-import datetime
# SammyFitConfig imports from PLEIADES
from pleiades.sammyStructures import SammyFitConfig, sammyRunConfig
@@ -118,9 +119,7 @@ def set_sammy_call_method(docker_image_name: str = "", verbose_level: int = 0) -
docker_image = docker_image_name
docker_command = f"docker image inspect {docker_image}"
try:
- subprocess.check_output(
- docker_command, shell=True, stderr=subprocess.STDOUT
- )
+ subprocess.check_output(docker_command, shell=True, stderr=subprocess.STDOUT)
if verbose_level > 0:
print(f"{print_header_good} Found docker version of SAMMY")
sammy_call = "docker"
@@ -174,9 +173,7 @@ def run_sammy_fit(config: sammyRunConfig, verbose_level: int = 0) -> None:
# Print info based on verbosity level
if verbose_level > 0:
- print(
- f"{print_header_check} ----------------------- Running SAMMY for {sammy_fit_name}"
- )
+ print(f"{print_header_check} ----------------------- Running SAMMY for {sammy_fit_name}")
if verbose_level > 1:
print(f"{print_header_check} input_file: {full_path_to_input_file}")
print(f"{print_header_check} par_file: {full_path_to_params_file}")
@@ -188,9 +185,7 @@ def run_sammy_fit(config: sammyRunConfig, verbose_level: int = 0) -> None:
if not os.path.isfile(full_path_to_input_file):
raise FileNotFoundError(f"{print_header_bad} Input file {input_file} not found")
if not os.path.isfile(full_path_to_params_file):
- raise FileNotFoundError(
- f"{print_header_bad} Parameter file {params_file} not found"
- )
+ raise FileNotFoundError(f"{print_header_bad} Parameter file {params_file} not found")
if not os.path.isfile(full_path_to_data_file):
raise FileNotFoundError(f"{print_header_bad} Data file {data_file} not found")
@@ -266,15 +261,11 @@ def run_sammy_fit(config: sammyRunConfig, verbose_level: int = 0) -> None:
# Check if the SAMMY run was successful by opening the output file and checking for the line " Normal finish to SAMMY"
with open(output_file, "r") as output:
if verbose_level > 0:
- print(
- f"{print_header_check} Checking SAMMY output file: {full_path_to_output_file}"
- )
+ print(f"{print_header_check} Checking SAMMY output file: {full_path_to_output_file}")
for line in output:
if " Normal finish to SAMMY" in line:
if verbose_level > 0:
- print(
- f"{print_header_good} SAMMY fit was successful for {sammy_fit_name}"
- )
+ print(f"{print_header_good} SAMMY fit was successful for {sammy_fit_name}")
break
else:
raise RuntimeError(
@@ -284,9 +275,7 @@ def run_sammy_fit(config: sammyRunConfig, verbose_level: int = 0) -> None:
# Move all SAMMY output files with the prefix SAM to the results folder
for file in glob.glob("SAM*"):
# Construct the full path for the destination
- destination_file = os.path.join(
- full_path_to_result_files, os.path.basename(file)
- )
+ destination_file = os.path.join(full_path_to_result_files, os.path.basename(file))
# Check if the file already exists in the destination folder
if os.path.exists(destination_file):
# Remove the existing file in the destination folder
@@ -343,12 +332,8 @@ def run_endf(config: SammyFitConfig, isotope: str = "", verbose_level: int = 0)
with open(fit_dir / input_file) as fid:
next(fid) # The first line is the isotope name
line = next(fid) # Read the second line with Emin and Emax
- Emin = float(
- line[20:30].strip()
- ) # Extract Emin using character positions and strip spaces
- Emax = float(
- line[30:40].strip()
- ) # Extract Emax using character positions and strip spaces
+ Emin = float(line[20:30].strip()) # Extract Emin using character positions and strip spaces
+ Emax = float(line[30:40].strip()) # Extract Emax using character positions and strip spaces
if verbose_level > 1:
print(f"{print_header_check} Emin: {Emin}, Emax: {Emax}")
@@ -371,9 +356,7 @@ def run_endf(config: SammyFitConfig, isotope: str = "", verbose_level: int = 0)
fid.write(f"{energy:>20.8f}{transmission:>20.8f}{error:>20.8f}\n")
if verbose_level > 0:
- print(
- f"{print_header_check} Dummy data file with {num_points} points written to {data_file}"
- )
+ print(f"{print_header_check} Dummy data file with {num_points} points written to {data_file}")
# Creating a par file based on ENDF file
symlink_path = fit_dir / "res_endf8.endf"
@@ -439,14 +422,10 @@ def run_endf(config: SammyFitConfig, isotope: str = "", verbose_level: int = 0)
for line in output_file:
if " Normal finish to SAMMY" in line:
if verbose_level > 0:
- print(
- f"{print_header_good} SAMMY ENDF run was successful for {isotope}"
- )
+ print(f"{print_header_good} SAMMY ENDF run was successful for {isotope}")
break
else:
- raise RuntimeError(
- f"{print_header_bad} SAMMY ENDF run was not successful for {isotope}"
- )
+ raise RuntimeError(f"{print_header_bad} SAMMY ENDF run was not successful for {isotope}")
# Move the SAMNDF output files to the results folder
for file in glob.glob("SAM*"):
diff --git a/src/pleiades/sammyStructures.py b/legacy/pleiades_old/sammyStructures.py
similarity index 89%
rename from src/pleiades/sammyStructures.py
rename to legacy/pleiades_old/sammyStructures.py
index dec5f89..630b7ef 100644
--- a/src/pleiades/sammyStructures.py
+++ b/legacy/pleiades_old/sammyStructures.py
@@ -116,9 +116,7 @@ def __init__(self, config_path=None):
if config_path:
print(f"{print_header_check} Loading configuration from {config_path}")
if not os.path.exists(config_path):
- raise FileNotFoundError(
- f"{print_header_bad} Config file {config_path} not found."
- )
+ raise FileNotFoundError(f"{print_header_bad} Config file {config_path} not found.")
else:
config = configparser.ConfigParser()
config.read(config_path)
@@ -126,9 +124,7 @@ def __init__(self, config_path=None):
# Set sammy_fit_dir to sammy_fit_name if sammy_fit_dir is not provided or is empty
if not self.params["directories"]["sammy_fit_dir"]:
- self.params["directories"]["sammy_fit_dir"] = self.params[
- "sammy_fit_name"
- ]
+ self.params["directories"]["sammy_fit_dir"] = self.params["sammy_fit_name"]
# Check and create all needed directories
self._check_directories()
@@ -147,26 +143,18 @@ def _load_from_config(self, config):
if "," in value:
# If the field is "abundances", convert to a list of floats
if key == "abundances":
- self.params[section][key] = [
- float(v.strip()) for v in value.split(",")
- ]
+ self.params[section][key] = [float(v.strip()) for v in value.split(",")]
else:
# Otherwise, convert to a list of strings
- self.params[section][key] = [
- v.strip() for v in value.split(",")
- ]
+ self.params[section][key] = [v.strip() for v in value.split(",")]
else:
# Handle normal value conversion for non-list fields
- self.params[section][key] = self._convert_value(
- self._strip_quotes(value)
- )
+ self.params[section][key] = self._convert_value(self._strip_quotes(value))
else:
for key, value in config.items(section):
if key in self.params:
# Strip quotes and convert value
- self.params[key] = self._convert_value(
- self._strip_quotes(value)
- )
+ self.params[key] = self._convert_value(self._strip_quotes(value))
def _convert_value(self, value):
"""Helper method to convert a string value to the appropriate type.
@@ -211,9 +199,7 @@ def _check_directories(self):
os.makedirs(working_dir, exist_ok=True)
# Create archive_dir if it doesn't exist
- archive_dir = pathlib.Path(
- working_dir / self.params["directories"]["archive_dir"]
- ).resolve()
+ archive_dir = pathlib.Path(working_dir / self.params["directories"]["archive_dir"]).resolve()
if not os.path.exists(archive_dir):
os.makedirs(archive_dir, exist_ok=True)
@@ -230,9 +216,7 @@ def _check_directories(self):
# If user defined, then the endf_dir path is set in the configuration file
if not self.params["directories"]["user_defined"]:
# Set the data directory to be an absolute path
- self.params["directories"]["data_dir"] = pathlib.Path(
- self.params["directories"]["data_dir"]
- ).resolve()
+ self.params["directories"]["data_dir"] = pathlib.Path(self.params["directories"]["data_dir"]).resolve()
# set the working directory to be an absolute path
self.params["directories"]["working_dir"] = working_dir
@@ -243,9 +227,7 @@ def _check_directories(self):
self.params["directories"]["endf_dir"] = endf_dir_path
# Convert the sammy_fit_dir_path to an absolute path
- sammy_fit_dir_path = (
- working_dir / self.params["directories"]["sammy_fit_dir"]
- )
+ sammy_fit_dir_path = working_dir / self.params["directories"]["sammy_fit_dir"]
sammy_fit_dir_path = pathlib.Path(sammy_fit_dir_path).resolve()
self.params["directories"]["sammy_fit_dir"] = sammy_fit_dir_path
@@ -304,24 +286,12 @@ def _convert_from_sammy_fit_config(self, sammy_fit_config):
self.params["sammy_command"] = sammy_fit_config.params["sammy_command"]
self.params["sammy_fit_name"] = sammy_fit_config.params["sammy_fit_name"]
self.params["run_endf_for_par"] = sammy_fit_config.params["run_endf_for_par"]
- self.params["directories"]["data_dir"] = sammy_fit_config.params["directories"][
- "data_dir"
- ]
- self.params["directories"]["sammy_fit_dir"] = sammy_fit_config.params[
- "directories"
- ]["sammy_fit_dir"]
- self.params["filenames"]["data_file_name"] = sammy_fit_config.params[
- "filenames"
- ]["data_file_name"]
- self.params["filenames"]["input_file_name"] = sammy_fit_config.params[
- "filenames"
- ]["input_file_name"]
- self.params["filenames"]["params_file_name"] = sammy_fit_config.params[
- "filenames"
- ]["params_file_name"]
- self.params["filenames"]["output_file_name"] = sammy_fit_config.params[
- "filenames"
- ]["output_file_name"]
+ self.params["directories"]["data_dir"] = sammy_fit_config.params["directories"]["data_dir"]
+ self.params["directories"]["sammy_fit_dir"] = sammy_fit_config.params["directories"]["sammy_fit_dir"]
+ self.params["filenames"]["data_file_name"] = sammy_fit_config.params["filenames"]["data_file_name"]
+ self.params["filenames"]["input_file_name"] = sammy_fit_config.params["filenames"]["input_file_name"]
+ self.params["filenames"]["params_file_name"] = sammy_fit_config.params["filenames"]["params_file_name"]
+ self.params["filenames"]["output_file_name"] = sammy_fit_config.params["filenames"]["output_file_name"]
def print_params(self):
"""Prints the parameters in a nicely formatted way."""
diff --git a/src/pleiades/sammyUtils.py b/legacy/pleiades_old/sammyUtils.py
similarity index 75%
rename from src/pleiades/sammyUtils.py
rename to legacy/pleiades_old/sammyUtils.py
index 1a2320c..0d2483c 100755
--- a/src/pleiades/sammyUtils.py
+++ b/legacy/pleiades_old/sammyUtils.py
@@ -20,25 +20,25 @@
# with 'from pleiades.sammyStructures import SammyFitConfig'
# General imports
-from pathlib import Path
-import pathlib
+import importlib.resources as pkg_resources
import os
+import pathlib
import shutil
+from pathlib import Path
+
import numpy as np
-import importlib.resources as pkg_resources
+
+from pleiades import nucData, sammyInput, sammyParFile, sammyRunner
# PLEIADES imports
from pleiades.sammyStructures import SammyFitConfig, sammyRunConfig
-from pleiades import sammyParFile, sammyInput, sammyRunner, nucData
print_header_check = "\033[1;34m\033[0m "
print_header_good = "\033[1;32m\033[0m "
print_header_bad = "\033[1;31m\033[0m "
-def create_parFile_from_endf(
- config: SammyFitConfig, archive: bool = True, verbose_level: int = 0
-) -> None:
+def create_parFile_from_endf(config: SammyFitConfig, archive: bool = True, verbose_level: int = 0) -> None:
"""
Takes a SammyFitConfig object and creates SAMMY parFiles from ENDF data based on the isotopes specified in the configuration.
@@ -63,9 +63,7 @@ def create_parFile_from_endf(
# first check to see if the SAMMY environment is set up correctly
if not sammyRunner.check_sammy_environment(config, verbose_level):
- raise FileNotFoundError(
- f"{print_header_bad} SAMMY executable not found in the path"
- )
+ raise FileNotFoundError(f"{print_header_bad} SAMMY executable not found in the path")
else:
if verbose_level > 0:
print(f"{print_header_good} SAMMY executable found in the path")
@@ -81,12 +79,8 @@ def create_parFile_from_endf(
# Print a header if verbose_level > 0
if verbose_level > 0:
- print(
- f"\n{print_header_check} ================================================"
- )
- print(
- f"{print_header_check} Creating SAMMY parFile files from ENDF data for isotopes: {isotopes}"
- )
+ print(f"\n{print_header_check} ================================================")
+ print(f"{print_header_check} Creating SAMMY parFile files from ENDF data for isotopes: {isotopes}")
# Set the ENDF directory path
endf_dir_path = pathlib.Path(config.params["directories"]["endf_dir"]).resolve()
@@ -98,29 +92,21 @@ def create_parFile_from_endf(
print(f"{print_header_check} ENDF directory created at {endf_dir_path}")
else:
if verbose_level > 0:
- print(
- f"{print_header_check} ENDF directory at {endf_dir_path} already exists"
- )
+ print(f"{print_header_check} ENDF directory at {endf_dir_path} already exists")
# Set the res_endf8.endf file path to be in the endf directory
destination_res_endf = endf_dir_path / "res_endf8.endf"
# Now check to see if the res_endf8.endf file exists in the endf dir. If not, copy it there.
if not os.path.exists(destination_res_endf):
- source_res_endf = pkg_resources.files("pleiades").joinpath(
- "../../nucDataLibs/resonanceTables/res_endf8.endf"
- )
+ source_res_endf = pkg_resources.files("pleiades").joinpath("../../nucDataLibs/resonanceTables/res_endf8.endf")
# Copy the res_endf8.endf file to the endf directory
shutil.copy(source_res_endf, destination_res_endf)
if verbose_level > 0:
- print(
- f"{print_header_check} Copied {source_res_endf} to {destination_res_endf}"
- )
+ print(f"{print_header_check} Copied {source_res_endf} to {destination_res_endf}")
else:
if verbose_level > 0:
- print(
- f"{print_header_check} res_endf8.endf file already exists at {destination_res_endf}\n"
- )
+ print(f"{print_header_check} res_endf8.endf file already exists at {destination_res_endf}\n")
# Loop through the isotope list:
# 1. Create a SAMMY input, data, and params file,
@@ -134,53 +120,37 @@ def create_parFile_from_endf(
if not os.path.exists(isotope_dir_path):
os.makedirs(isotope_dir_path)
if verbose_level > 0:
- print(
- f"{print_header_check} Isotope directory created at {isotope_dir_path}"
- )
+ print(f"{print_header_check} Isotope directory created at {isotope_dir_path}")
else:
if verbose_level > 0:
- print(
- f"{print_header_check} Isotope directory at {isotope_dir_path} already exists"
- )
+ print(f"{print_header_check} Isotope directory at {isotope_dir_path} already exists")
# Check to see if the par file already exists in the isotope directory
par_file = fit_results_dir / Path("SAMNDF.PAR")
if os.path.exists(par_file):
if verbose_level > 0:
- print(
- f"{print_header_check} SAMMY parFile already exists at {par_file}"
- )
- print(
- f"{print_header_check} Skipping SAMMY ENDF run for isotope: {isotope}"
- )
+ print(f"{print_header_check} SAMMY parFile already exists at {par_file}")
+ print(f"{print_header_check} Skipping SAMMY ENDF run for isotope: {isotope}")
continue
else:
if verbose_level > 0:
- print(
- f"{print_header_check} A SAMMY parFile does not exist at {par_file}"
- )
+ print(f"{print_header_check} A SAMMY parFile does not exist at {par_file}")
# Print a header if verbose_level > 0
if verbose_level > 0:
- print(
- f"{print_header_check} Now Creating SAMMY input.inp and params.par for isotope: {isotope}"
- )
+ print(f"{print_header_check} Now Creating SAMMY input.inp and params.par for isotope: {isotope}")
# Create and update SAMMY input file data structure
inp = sammyInput.InputFile()
inp.update_with_config(config, isotope=isotope, for_endf=True)
# Create a SAMMY input file in the isotope directory
- sammy_input_file = (
- isotope_dir_path / (config.params["filenames"]["input_file_name"])
- )
+ sammy_input_file = isotope_dir_path / (config.params["filenames"]["input_file_name"])
# Write the SAMMY input file to the specified location.
inp.process().write(sammy_input_file)
if verbose_level > 0:
- print(
- f"{print_header_check} SAMMY input file created at {sammy_input_file}"
- )
+ print(f"{print_header_check} SAMMY input file created at {sammy_input_file}")
# Print the input data structure if desired
if verbose_level > 1:
@@ -192,9 +162,7 @@ def create_parFile_from_endf(
data_file = isotope_dir_path / ("data.twenty")
# Determine the number of points (at least 100) and create a list of energies
- energy_values = np.linspace(
- config.params["fit_energy_max"], config.params["fit_energy_min"], 100
- )
+ energy_values = np.linspace(config.params["fit_energy_max"], config.params["fit_energy_min"], 100)
# Open the data file and write the energy, transmission, and error values
# Note: this is the twenty character format that SAMMY expects with the TWENTY command
@@ -206,9 +174,7 @@ def create_parFile_from_endf(
fid.write(f"{energy:>20.8f}{transmission:>20.8f}{error:>20.8f}\n")
if verbose_level > 0:
- print(
- f"{print_header_check} Created an ENDF dummy data file at {data_file}"
- )
+ print(f"{print_header_check} Created an ENDF dummy data file at {data_file}")
# Creating a par file based on ENDF file
endf_res_file_name = "res_endf8.endf"
@@ -230,21 +196,15 @@ def create_parFile_from_endf(
isotope_run_config = sammyRunConfig()
# configure run_config for an ENDF SAMMY run
- isotope_run_config.params["sammy_run_method"] = config.params[
- "sammy_run_method"
- ]
+ isotope_run_config.params["sammy_run_method"] = config.params["sammy_run_method"]
isotope_run_config.params["sammy_command"] = config.params["sammy_command"]
isotope_run_config.params["sammy_fit_name"] = isotope
isotope_run_config.params["run_endf_for_par"] = True
- isotope_run_config.params["directories"]["sammy_fit_dir"] = str(
- isotope_dir_path
- )
+ isotope_run_config.params["directories"]["sammy_fit_dir"] = str(isotope_dir_path)
isotope_run_config.params["directories"]["input_dir"] = str(isotope_dir_path)
isotope_run_config.params["directories"]["params_dir"] = str(endf_dir_path)
isotope_run_config.params["directories"]["data_dir"] = str(isotope_dir_path)
- isotope_run_config.params["filenames"]["params_file_name"] = str(
- endf_res_file_name
- )
+ isotope_run_config.params["filenames"]["params_file_name"] = str(endf_res_file_name)
sammyRunner.run_sammy_fit(isotope_run_config, verbose_level=verbose_level)
@@ -290,9 +250,7 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
# Create a SAMMY parFile for each isotope
if verbose_level > 0:
- print(
- f"\n{print_header_check} Merging SAMMY parameter files for isotopes: {isotopes}, with abundances: {abundances}"
- )
+ print(f"\n{print_header_check} Merging SAMMY parameter files for isotopes: {isotopes}, with abundances: {abundances}")
# TODO: This assumes that parfiles were created via ENDF data. This might not always be the case.
# I think I can use the run_with_endf flag to determine if the par file was created with ENDF data
@@ -333,24 +291,12 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
"flight_path_spread": config.params["broadening"]["flight_path_spread"],
"deltag_fwhm": config.params["broadening"]["deltag_fwhm"],
"deltae_us": config.params["broadening"]["deltae_us"],
- "vary_match_radius": int(
- config.params["broadening"]["vary_match_radius"] is True
- ),
- "vary_thickness": int(
- config.params["broadening"]["vary_thickness"] is True
- ),
- "vary_temperature": int(
- config.params["broadening"]["vary_temperature"] is True
- ),
- "vary_flight_path_spread": int(
- config.params["broadening"]["vary_flight_path_spread"] is True
- ),
- "vary_deltag_fwhm": int(
- config.params["broadening"]["vary_deltag_fwhm"] is True
- ),
- "vary_deltae_us": int(
- config.params["broadening"]["vary_deltae_us"] is True
- ),
+ "vary_match_radius": int(config.params["broadening"]["vary_match_radius"] is True),
+ "vary_thickness": int(config.params["broadening"]["vary_thickness"] is True),
+ "vary_temperature": int(config.params["broadening"]["vary_temperature"] is True),
+ "vary_flight_path_spread": int(config.params["broadening"]["vary_flight_path_spread"] is True),
+ "vary_deltag_fwhm": int(config.params["broadening"]["vary_deltag_fwhm"] is True),
+ "vary_deltae_us": int(config.params["broadening"]["vary_deltae_us"] is True),
}
outputParFile.update.broadening(**broadening_args)
@@ -362,24 +308,12 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
"sqrt_energy_bg": float(config.params["normalization"]["sqrt_energy_bg"]),
"exponential_bg": float(config.params["normalization"]["exponential_bg"]),
"exp_decay_bg": float(config.params["normalization"]["exp_decay_bg"]),
- "vary_normalization": int(
- config.params["normalization"]["vary_normalization"] is True
- ),
- "vary_constant_bg": int(
- config.params["normalization"]["vary_constant_bg"] is True
- ),
- "vary_one_over_v_bg": int(
- config.params["normalization"]["vary_one_over_v_bg"] is True
- ),
- "vary_sqrt_energy_bg": int(
- config.params["normalization"]["vary_sqrt_energy_bg"] is True
- ),
- "vary_exponential_bg": int(
- config.params["normalization"]["vary_exponential_bg"] is True
- ),
- "vary_exp_decay_bg": int(
- config.params["normalization"]["vary_exp_decay_bg"] is True
- ),
+ "vary_normalization": int(config.params["normalization"]["vary_normalization"] is True),
+ "vary_constant_bg": int(config.params["normalization"]["vary_constant_bg"] is True),
+ "vary_one_over_v_bg": int(config.params["normalization"]["vary_one_over_v_bg"] is True),
+ "vary_sqrt_energy_bg": int(config.params["normalization"]["vary_sqrt_energy_bg"] is True),
+ "vary_exponential_bg": int(config.params["normalization"]["vary_exponential_bg"] is True),
+ "vary_exp_decay_bg": int(config.params["normalization"]["vary_exp_decay_bg"] is True),
}
outputParFile.update.normalization(**normalization_args)
@@ -391,17 +325,13 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
# Now create a SAMMY input file
if verbose_level > 0:
- print(
- f"{print_header_check} Creating SAMMY inpFile files for isotopes: {isotopes} with abundances: {abundances}"
- )
+ print(f"{print_header_check} Creating SAMMY inpFile files for isotopes: {isotopes} with abundances: {abundances}")
# Create an inpFile from
inp = sammyInput.InputFile(verbose_level=verbose_level)
# find the lowest atomic number isotope and set it as the element
- lowest_atomic_isotope = min(
- isotopes, key=lambda isotope: nucData.get_mass_from_ame(isotope)
- )
+ lowest_atomic_isotope = min(isotopes, key=lambda isotope: nucData.get_mass_from_ame(isotope))
# Update input data with isotope-specific information
inp.data["Card2"]["elmnt"] = lowest_atomic_isotope
@@ -430,27 +360,21 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
# Write the SAMMY input file to the specified location.
inp.process().write(output_inp_file)
if verbose_level > 0:
- print(
- f"{print_header_check} Created compound input file: {output_inp_file}"
- )
+ print(f"{print_header_check} Created compound input file: {output_inp_file}")
# Create a symbolic link inside the sammy_fit_dir that points to the data file
data_file = os.path.join(data_dir, config.params["filenames"]["data_file_name"])
data_file_name = pathlib.Path(data_file).name
if verbose_level > 0:
- print(
- f"{print_header_check} Symlinking data file: {data_file} into {sammy_fit_dir}"
- )
+ print(f"{print_header_check} Symlinking data file: {data_file} into {sammy_fit_dir}")
# Check if the symbolic link already exists
symlink_path = pathlib.Path(sammy_fit_dir) / data_file_name
if os.path.islink(symlink_path):
os.unlink(symlink_path) # unlink old symlink
- os.symlink(
- data_file, pathlib.Path(sammy_fit_dir) / data_file_name
- ) # create new symlink
+ os.symlink(data_file, pathlib.Path(sammy_fit_dir) / data_file_name) # create new symlink
# Create a sammy run configuration object
sammy_run_config = sammyRunConfig()
@@ -459,27 +383,13 @@ def configure_sammy_run(config: SammyFitConfig, verbose_level: int = 0):
sammy_run_config.params["sammy_run_method"] = config.params["sammy_run_method"]
sammy_run_config.params["sammy_command"] = config.params["sammy_command"]
sammy_run_config.params["run_endf_for_par"] = False
- sammy_run_config.params["directories"]["sammy_fit_dir"] = config.params[
- "directories"
- ]["sammy_fit_dir"]
- sammy_run_config.params["directories"]["input_dir"] = config.params[
- "directories"
- ]["sammy_fit_dir"]
- sammy_run_config.params["directories"]["params_dir"] = config.params[
- "directories"
- ]["sammy_fit_dir"]
- sammy_run_config.params["directories"]["data_dir"] = config.params[
- "directories"
- ]["data_dir"]
- sammy_run_config.params["filenames"]["params_file_name"] = config.params[
- "filenames"
- ]["params_file_name"]
- sammy_run_config.params["filenames"]["input_file_name"] = config.params[
- "filenames"
- ]["input_file_name"]
- sammy_run_config.params["filenames"]["data_file_name"] = config.params[
- "filenames"
- ]["data_file_name"]
+ sammy_run_config.params["directories"]["sammy_fit_dir"] = config.params["directories"]["sammy_fit_dir"]
+ sammy_run_config.params["directories"]["input_dir"] = config.params["directories"]["sammy_fit_dir"]
+ sammy_run_config.params["directories"]["params_dir"] = config.params["directories"]["sammy_fit_dir"]
+ sammy_run_config.params["directories"]["data_dir"] = config.params["directories"]["data_dir"]
+ sammy_run_config.params["filenames"]["params_file_name"] = config.params["filenames"]["params_file_name"]
+ sammy_run_config.params["filenames"]["input_file_name"] = config.params["filenames"]["input_file_name"]
+ sammy_run_config.params["filenames"]["data_file_name"] = config.params["filenames"]["data_file_name"]
return sammy_run_config
diff --git a/src/pleiades/simData.py b/legacy/pleiades_old/simData.py
similarity index 81%
rename from src/pleiades/simData.py
rename to legacy/pleiades_old/simData.py
index 9d3f973..19a4601 100644
--- a/src/pleiades/simData.py
+++ b/legacy/pleiades_old/simData.py
@@ -1,8 +1,10 @@
import configparser
+import json
+
import numpy as np
from scipy.interpolate import interp1d
+
import pleiades.nucData as pnd
-import json
AVOGADRO = 6.02214076e23 # Avogadro's number
CM2_TO_BARN = 1e24 # Conversion factor from cm2 to barns
@@ -34,9 +36,7 @@ def create_transmission(energy_grid, isotope):
if thickness_unit == "mm":
thickness /= 10.0
else:
- raise ValueError(
- "Unsupported thickness unit: {thickness_unit} for {isotope_name}"
- )
+ raise ValueError("Unsupported thickness unit: {thickness_unit} for {isotope_name}")
if density_unit != "g/cm3":
raise ValueError("Unsupported density unit:{density_unit} for {isotope_name}")
@@ -45,9 +45,7 @@ def create_transmission(energy_grid, isotope):
# Create interpolation function for cross-section data
energies_eV, cross_sections = zip(*xs_data)
- interpolate_xs_data = interp1d(
- energies_eV, cross_sections, kind="linear", fill_value="extrapolate"
- )
+ interpolate_xs_data = interp1d(energies_eV, cross_sections, kind="linear", fill_value="extrapolate")
# create a list of tuples containing the energy and transmission data
transmission = []
@@ -108,17 +106,11 @@ def parse_xs_file(file_location, isotope_name, verbose_level=0):
# If capture_data is True and the line doesn't start with a '#', then it's the data
elif capture_data and not line.startswith("#"):
energy_eV, xs = line.split()
- xs_data.append(
- (float(energy_eV) * 1e6, float(xs))
- ) # Convert energy from MeV to eV
+ xs_data.append((float(energy_eV) * 1e6, float(xs))) # Convert energy from MeV to eV
# If the loop completes and the isotope was not found
if not isotope_xs_found:
- raise ValueError(
- "Cross-section data for {isotope_name} not found in {file_location}".format(
- isotope_name=isotope_name, file_location=file_location
- )
- )
+ raise ValueError(f"Cross-section data for {isotope_name} not found in {file_location}")
return xs_data
@@ -153,16 +145,10 @@ def load_xs_data(self, verbose_level=0):
print(f"[load_xs_data] -> loading xs file for {self.name}")
self.xs_data = parse_xs_file(self.xs_file_location, self.name, verbose_level=0)
if not self.xs_data:
- raise ValueError(
- f"No data loaded for {self.name} from {self.xs_file_location}"
- )
+ raise ValueError(f"No data loaded for {self.name} from {self.xs_file_location}")
def __repr__(self):
- xs_status = (
- "XS data loaded successfully"
- if len(self.xs_data) != 0
- else "XS data not loaded"
- )
+ xs_status = "XS data loaded successfully" if len(self.xs_data) != 0 else "XS data not loaded"
return f"Isotope({self.name},{self.atomic_mass},{self.thickness} {self.thickness_unit}, {self.abundance}, {self.xs_file_location}, {self.density} {self.density_unit}, {xs_status})"
@@ -197,22 +183,12 @@ def load_isotopes_from_config(config_file, verbose=False):
atomic_mass = pnd.get_mass_from_ame(name)
if atomic_mass is None:
raise ValueError(f"Could not find atomic mass for {name}")
- thickness = config.getfloat(
- section, "thickness", fallback=default_isotope.thickness
- )
- thickness_unit = config.get(
- section, "thickness_unit", fallback=default_isotope.thickness_unit
- )
- abundance = config.getfloat(
- section, "abundance", fallback=default_isotope.abundance
- )
- xs_file_location = config.get(
- section, "xs_file_location", fallback=default_isotope.xs_file_location
- )
+ thickness = config.getfloat(section, "thickness", fallback=default_isotope.thickness)
+ thickness_unit = config.get(section, "thickness_unit", fallback=default_isotope.thickness_unit)
+ abundance = config.getfloat(section, "abundance", fallback=default_isotope.abundance)
+ xs_file_location = config.get(section, "xs_file_location", fallback=default_isotope.xs_file_location)
density = config.getfloat(section, "density", fallback=default_isotope.density)
- density_unit = config.get(
- section, "density_unit", fallback=default_isotope.density_unit
- )
+ density_unit = config.get(section, "density_unit", fallback=default_isotope.density_unit)
# Create an Isotope instance and load the xs data
isotope = Isotope(
@@ -233,9 +209,7 @@ def load_isotopes_from_config(config_file, verbose=False):
return isotopes
-def write_transmission_data_twenty(
- energy_data, transmission_data, output_file, include_error=False, verbose=False
-):
+def write_transmission_data_twenty(energy_data, transmission_data, output_file, include_error=False, verbose=False):
"""Write the transmission data to a file in the format: energy (eV), transmission (0-1) with SAMMY's twenty character format.
Args:
@@ -256,16 +230,12 @@ def write_transmission_data_twenty(
energy_str = f"{energy:>20}" # Right-justified, 20 characters
transmission_str = f"{transmission:>20}" # Right-justified, 20 characters
- transmission_error_str = (
- f"{transmission_error:>20}" # Right-justified, 20 characters
- )
+ transmission_error_str = f"{transmission_error:>20}" # Right-justified, 20 characters
if include_error:
f.write(f"{energy_str}{transmission_str}{transmission_error_str}\n")
else:
- f.write(
- f"{energy_str}{transmission_str}\n"
- ) # Write the data to the file
+ f.write(f"{energy_str}{transmission_str}\n") # Write the data to the file
def write_transmission_data_json(
@@ -296,14 +266,8 @@ def write_transmission_data_json(
"""
# Check if transmission data contains numpy arrays and convert them to lists
- energy_data = [
- item[0].tolist() if isinstance(item[0], np.ndarray) else item[0]
- for item in transmission_data
- ]
- transmission_data = [
- item[1].tolist() if isinstance(item[1], np.ndarray) else item[1]
- for item in transmission_data
- ]
+ energy_data = [item[0].tolist() if isinstance(item[0], np.ndarray) else item[0] for item in transmission_data]
+ transmission_data = [item[1].tolist() if isinstance(item[1], np.ndarray) else item[1] for item in transmission_data]
# Create the dictionary structure for JSON
data_structure = {
diff --git a/tests/test_nucData.py b/legacy/tests/test_nucData.py
similarity index 94%
rename from tests/test_nucData.py
rename to legacy/tests/test_nucData.py
index 31d8c08..464809b 100644
--- a/tests/test_nucData.py
+++ b/legacy/tests/test_nucData.py
@@ -1,8 +1,10 @@
+import logging
import os
-from pleiades import nucData
import pathlib
+
import pytest
-import logging
+
+from pleiades import nucData
## Configure logging for the test
# Set file name
@@ -102,7 +104,9 @@ def test_parse_ame_line():
logger.info(logger_header_break)
logger.info("Testing parsing a line from the AME file")
- line = " 0 6 6 12 C 0.0 0.0 7680.1446 0.0002 B- -17338.0681 0.9999 12 000000.0 0.0"
+ line = (
+ " 0 6 6 12 C 0.0 0.0 7680.1446 0.0002 B- -17338.0681 0.9999 12 000000.0 0.0"
+ )
parsed_data = nucData.parse_ame_line(line)
logger.info(f"Parsed Data: {parsed_data}")
@@ -155,9 +159,7 @@ def test_get_mass_from_ame(ame_file, monkeypatch):
logger.info("Testing fetching the atomic mass from mass.mas20")
# Use monkeypatch to override the pleiades_dir path for nucData
- monkeypatch.setattr(
- nucData, "pleiades_dir", pathlib.Path(ame_file).parent.parent.parent
- )
+ monkeypatch.setattr(nucData, "pleiades_dir", pathlib.Path(ame_file).parent.parent.parent)
# Test for a few isotopes
isotope = "H-1"
@@ -195,9 +197,7 @@ def test_get_mat_number(neutron_file, monkeypatch):
logger.info("Testing fetching the ENDF mat number from neutrons.list")
# Use monkeypatch to override the pleiades_dir path for nucData
- monkeypatch.setattr(
- nucData, "pleiades_dir", pathlib.Path(neutron_file).parent.parent.parent
- ) # Points to root directory
+ monkeypatch.setattr(nucData, "pleiades_dir", pathlib.Path(neutron_file).parent.parent.parent) # Points to root directory
# Test with known isotopes
isotope = "Fe-56"
diff --git a/tests/test_sammyInput.py b/legacy/tests/test_sammyInput.py
similarity index 93%
rename from tests/test_sammyInput.py
rename to legacy/tests/test_sammyInput.py
index cd9a987..0e3aa8a 100644
--- a/tests/test_sammyInput.py
+++ b/legacy/tests/test_sammyInput.py
@@ -1,9 +1,10 @@
+import logging
+import os
+
import pytest
+
from pleiades import sammyInput
from pleiades.sammyStructures import SammyFitConfig
-import os
-import logging
-
## Configure logging for the test
# Set file name
@@ -65,13 +66,9 @@ def test_update_with_config(input_file):
config = SammyFitConfig()
config.params["isotopes"] = {"names": ["U-235", "U-238"]}
- logger.info(
- f"Config loaded successfully with isotopes: {config.params['isotopes']['names']}"
- )
+ logger.info(f"Config loaded successfully with isotopes: {config.params['isotopes']['names']}")
input_file.update_with_config(config)
- assert (
- input_file.data["Card2"]["elmnt"] == "U-235"
- ) # Selects isotope with lowest mass
+ assert input_file.data["Card2"]["elmnt"] == "U-235" # Selects isotope with lowest mass
assert input_file.data["Card2"]["aw"] == "auto" # Atomic weight should be auto
logger.info("InputFile updated successfully")
@@ -127,9 +124,7 @@ def test_format_type_F():
formatted_float = sammyInput.InputFile.format_type_F(1.2345, 10)
- assert (
- len(formatted_float) == 10
- ) # Ensure the formatted string is 10 characters wide
+ assert len(formatted_float) == 10 # Ensure the formatted string is 10 characters wide
assert formatted_float.strip() == "1.2345" # Check that the float part is correct
logger.info("format_type_F method tested successfully")
diff --git a/tests/test_sammyRunner.py b/legacy/tests/test_sammyRunner.py
similarity index 93%
rename from tests/test_sammyRunner.py
rename to legacy/tests/test_sammyRunner.py
index d63a53c..1bdaa6d 100644
--- a/tests/test_sammyRunner.py
+++ b/legacy/tests/test_sammyRunner.py
@@ -1,7 +1,9 @@
+import logging
import os
-from pleiades import sammyUtils, sammyRunner
+
import pytest
-import logging
+
+from pleiades import sammyRunner, sammyUtils
# Configure logging for the test
log_file = "test_sammyRunner.log"
@@ -47,9 +49,7 @@ def test_check_sammy_environment(default_config):
logger.info(logger_header_break)
logger.info("Checking if SAMMY environment exists")
- sammy_compiled_exists, sammy_docker_exists = sammyRunner.check_sammy_environment(
- default_config
- )
+ sammy_compiled_exists, sammy_docker_exists = sammyRunner.check_sammy_environment(default_config)
logger.info(logger_footer_break)
@@ -60,9 +60,7 @@ def test_set_sammy_call_method(default_config):
# Test the set_sammy_call_method() function
logger.info(logger_header_break)
logger.info("Testing the set_sammy_call_method() function")
- sammy_call, sammy_command = sammyRunner.set_sammy_call_method(
- docker_image_name="sammy-docker", verbose_level=1
- )
+ sammy_call, sammy_command = sammyRunner.set_sammy_call_method(docker_image_name="sammy-docker", verbose_level=1)
logger.info(f"Sammy call: {sammy_call}")
logger.info(f"Sammy command: {sammy_command}")
diff --git a/tests/test_sammyUtils.py b/legacy/tests/test_sammyUtils.py
similarity index 81%
rename from tests/test_sammyUtils.py
rename to legacy/tests/test_sammyUtils.py
index 9dc8c5d..b2b2509 100644
--- a/tests/test_sammyUtils.py
+++ b/legacy/tests/test_sammyUtils.py
@@ -1,8 +1,10 @@
+import logging
import os
-from pleiades import sammyUtils, sammyRunner
import pathlib
+
import pytest
-import logging
+
+from pleiades import sammyRunner, sammyUtils
## Configure logging for the test
# Set file name
@@ -45,9 +47,7 @@ def default_config(tmpdir):
config.params["directories"]["working_dir"] = str(tmpdir.mkdir("working_dir"))
# Set paths for subdirectories endf and data
- config.params["directories"]["endf_dir"] = str(
- pathlib.Path(config.params["directories"]["working_dir"]) / "endf"
- )
+ config.params["directories"]["endf_dir"] = str(pathlib.Path(config.params["directories"]["working_dir"]) / "endf")
return config
@@ -56,9 +56,7 @@ def test_sammyUtils_sammy_config(default_config):
"""Test the sammyUtils.SammyFitConfig class by loading the default config."""
logger.info(logger_header_break)
logger.info("Checking if default config is a SammyFitConfig object")
- logger.info(
- f"Temp working directory created at {default_config.params['directories']['working_dir']}"
- )
+ logger.info(f"Temp working directory created at {default_config.params['directories']['working_dir']}")
# Check if default_config is a SammyFitConfig object
assert isinstance(default_config, sammyUtils.SammyFitConfig)
@@ -71,14 +69,10 @@ def test_set_sammy_call_method(default_config):
"""Test the set_sammy_call_method() function to determine the SAMMY run method."""
logger.info(logger_header_break)
logger.info("Testing the set_sammy_call_method() function")
- logger.info(
- f"Temp working directory created at {default_config.params['directories']['working_dir']}"
- )
+ logger.info(f"Temp working directory created at {default_config.params['directories']['working_dir']}")
# Test the set_sammy_call_method() function
- sammy_call, sammy_command = sammyRunner.set_sammy_call_method(
- docker_image_name="sammy-docker", verbose_level=1
- )
+ sammy_call, sammy_command = sammyRunner.set_sammy_call_method(docker_image_name="sammy-docker", verbose_level=1)
logger.info(f"Sammy call: {sammy_call}")
logger.info(f"Sammy command: {sammy_command}")
@@ -97,17 +91,11 @@ def test_create_parFile_from_endf(default_config):
"""Test the creation of a parFile from an ENDF file."""
logger.info(logger_header_break)
test_isotope = "U-238"
- logger.info(
- f"Testing the creation of a parFile from an ENDF file for with test isotope: {test_isotope}"
- )
- logger.info(
- f"Temp working directory created at {default_config.params['directories']['working_dir']}"
- )
+ logger.info(f"Testing the creation of a parFile from an ENDF file for with test isotope: {test_isotope}")
+ logger.info(f"Temp working directory created at {default_config.params['directories']['working_dir']}")
# Grab the sammy_call and sammy_command from the sammyRunner.set_sammy_call_method() function
- sammy_call, sammy_command = sammyRunner.set_sammy_call_method(
- docker_image_name="sammy-docker", verbose_level=1
- )
+ sammy_call, sammy_command = sammyRunner.set_sammy_call_method(docker_image_name="sammy-docker", verbose_level=1)
# Update the default config with a U-238 isotope
logger.info("Updating default config with U-238 isotope")
@@ -132,15 +120,11 @@ def test_create_parFile_from_endf(default_config):
assert isotope_dir_path.exists()
# Check if the parFile was created
- logger.info(
- f"Checking if SAMNDF.PAR parFile was created at {isotope_dir_path / 'results'}"
- )
+ logger.info(f"Checking if SAMNDF.PAR parFile was created at {isotope_dir_path / 'results'}")
parFile_path = pathlib.Path(isotope_dir_path / "results" / "SAMNDF.PAR")
assert parFile_path.exists()
- logger.info(
- f"SAMNDF.PAR parFile created successfully at {isotope_dir_path / 'results'}"
- )
+ logger.info(f"SAMNDF.PAR parFile created successfully at {isotope_dir_path / 'results'}")
logger.info(logger_footer_break)
diff --git a/poetry.lock b/poetry.lock
index 6302e0c..941436f 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,25 +1,169 @@
-# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand.
+
+[[package]]
+name = "aiohappyeyeballs"
+version = "2.4.4"
+description = "Happy Eyeballs for asyncio"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"},
+ {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"},
+]
+
+[[package]]
+name = "aiohttp"
+version = "3.11.11"
+description = "Async http client/server framework (asyncio)"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"},
+ {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"},
+ {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"},
+ {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"},
+ {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"},
+ {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"},
+ {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"},
+ {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"},
+ {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"},
+ {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"},
+ {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"},
+ {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"},
+ {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"},
+ {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"},
+ {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"},
+ {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"},
+ {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"},
+ {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"},
+ {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"},
+ {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"},
+ {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"},
+ {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"},
+ {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"},
+ {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"},
+ {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"},
+ {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"},
+ {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"},
+ {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"},
+ {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"},
+ {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"},
+ {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"},
+ {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"},
+ {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"},
+ {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"},
+ {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"},
+ {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"},
+ {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"},
+ {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"},
+ {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"},
+ {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"},
+ {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"},
+ {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"},
+ {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"},
+ {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"},
+ {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"},
+ {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"},
+ {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"},
+ {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"},
+ {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"},
+ {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"},
+ {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"},
+ {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"},
+ {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"},
+ {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"},
+ {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"},
+ {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"},
+ {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"},
+ {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"},
+ {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"},
+ {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"},
+ {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"},
+ {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"},
+ {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"},
+ {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"},
+ {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"},
+ {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"},
+ {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"},
+ {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"},
+ {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"},
+ {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"},
+ {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"},
+ {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"},
+ {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"},
+ {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"},
+ {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"},
+ {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"},
+]
+
+[package.dependencies]
+aiohappyeyeballs = ">=2.3.0"
+aiosignal = ">=1.1.2"
+async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""}
+attrs = ">=17.3.0"
+frozenlist = ">=1.1.1"
+multidict = ">=4.5,<7.0"
+propcache = ">=0.2.0"
+yarl = ">=1.17.0,<2.0"
+
+[package.extras]
+speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
+
+[[package]]
+name = "aiosignal"
+version = "1.3.2"
+description = "aiosignal: a list of registered asynchronous callbacks"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
+ {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
+]
+
+[package.dependencies]
+frozenlist = ">=1.1.0"
+
+[[package]]
+name = "annotated-types"
+version = "0.7.0"
+description = "Reusable constraint types to use with typing.Annotated"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
+ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
+]
[[package]]
name = "anyio"
-version = "4.6.2.post1"
+version = "4.7.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"},
- {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"},
+ {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"},
+ {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"},
]
[package.dependencies]
exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
idna = ">=2.8"
sniffio = ">=1.1"
-typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
+typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
-doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
-test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"]
+doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -28,6 +172,8 @@ version = "0.1.4"
description = "Disable App Nap on macOS >= 10.9"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" and platform_system == \"Darwin\" or python_version >= \"3.12\" and platform_system == \"Darwin\""
files = [
{file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"},
{file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"},
@@ -39,6 +185,8 @@ version = "23.1.0"
description = "Argon2 for Python"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"},
{file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"},
@@ -59,6 +207,8 @@ version = "21.2.0"
description = "Low-level CFFI bindings for Argon2"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"},
{file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"},
@@ -96,6 +246,8 @@ version = "1.3.0"
description = "Better dates & times for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"},
{file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"},
@@ -111,21 +263,20 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock
[[package]]
name = "asttokens"
-version = "2.4.1"
+version = "3.0.0"
description = "Annotate AST trees with source code positions"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
- {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
+ {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"},
+ {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"},
]
-[package.dependencies]
-six = ">=1.12.0"
-
[package.extras]
-astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"]
-test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"]
+astroid = ["astroid (>=2,<4)"]
+test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"]
[[package]]
name = "async-lru"
@@ -133,6 +284,8 @@ version = "2.0.4"
description = "Simple LRU cache for asyncio"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"},
{file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"},
@@ -141,21 +294,36 @@ files = [
[package.dependencies]
typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""}
+[[package]]
+name = "async-timeout"
+version = "5.0.1"
+description = "Timeout context manager for asyncio programs"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version < \"3.11\""
+files = [
+ {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"},
+ {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"},
+]
+
[[package]]
name = "attrs"
-version = "24.2.0"
+version = "24.3.0"
description = "Classes Without Boilerplate"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
- {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
+ {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
+ {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
]
[package.extras]
benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
-dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
@@ -166,6 +334,8 @@ version = "2.16.0"
description = "Internationalization utilities"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"},
{file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"},
@@ -180,6 +350,8 @@ version = "4.12.3"
description = "Screen-scraping library"
optional = false
python-versions = ">=3.6.0"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"},
{file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"},
@@ -195,12 +367,35 @@ charset-normalizer = ["charset-normalizer"]
html5lib = ["html5lib"]
lxml = ["lxml"]
+[[package]]
+name = "bioblend"
+version = "1.4.0"
+description = "Library for interacting with the Galaxy API"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "bioblend-1.4.0-py3-none-any.whl", hash = "sha256:20886e5f7658e1dc3e025cedb4be88538342374afba583ce4e2acb5c14a25c63"},
+ {file = "bioblend-1.4.0.tar.gz", hash = "sha256:175d49d288e27d132ff59c870551c87cd95d7747be55ab94807c563291a3fa1d"},
+]
+
+[package.dependencies]
+requests = ">=2.20.0"
+requests-toolbelt = ">=0.5.1,<0.9.0 || >0.9.0"
+tuspy = "*"
+
+[package.extras]
+testing = ["pytest"]
+
[[package]]
name = "bleach"
version = "6.2.0"
description = "An easy safelist-based HTML-sanitizing tool."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"},
{file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"},
@@ -214,13 +409,15 @@ css = ["tinycss2 (>=1.1.0,<1.5)"]
[[package]]
name = "certifi"
-version = "2024.8.30"
+version = "2024.12.14"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
- {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
+ {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
+ {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
]
[[package]]
@@ -229,6 +426,8 @@ version = "1.17.1"
description = "Foreign Function Interface for Python calling C code."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
@@ -308,6 +507,8 @@ version = "3.4.0"
description = "Validate configuration and produce human readable error messages."
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"},
{file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"},
@@ -319,6 +520,8 @@ version = "3.4.0"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
@@ -433,6 +636,8 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["main", "dev"]
+markers = "python_version <= \"3.11\" and sys_platform == \"win32\" or python_version >= \"3.12\" and sys_platform == \"win32\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -444,6 +649,8 @@ version = "0.2.2"
description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"},
{file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"},
@@ -461,6 +668,8 @@ version = "1.3.1"
description = "Python library for calculating contours of 2D quadrilateral grids"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"},
{file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"},
@@ -528,12 +737,93 @@ mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pil
test = ["Pillow", "contourpy[test-no-images]", "matplotlib"]
test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"]
+[[package]]
+name = "coverage"
+version = "7.6.9"
+description = "Code coverage measurement for Python"
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"},
+ {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"},
+ {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"},
+ {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"},
+ {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"},
+ {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"},
+ {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"},
+ {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"},
+ {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"},
+ {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"},
+ {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"},
+ {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"},
+ {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"},
+ {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"},
+ {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"},
+ {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"},
+ {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"},
+ {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"},
+ {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"},
+ {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"},
+ {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"},
+ {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"},
+ {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"},
+ {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"},
+ {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"},
+ {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"},
+ {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"},
+ {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"},
+ {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"},
+ {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"},
+ {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"},
+ {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"},
+ {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"},
+ {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"},
+ {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"},
+ {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"},
+ {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"},
+ {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"},
+]
+
+[package.dependencies]
+tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""}
+
+[package.extras]
+toml = ["tomli"]
+
[[package]]
name = "cycler"
version = "0.12.1"
description = "Composable style cycles"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"},
{file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"},
@@ -545,37 +835,39 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"]
[[package]]
name = "debugpy"
-version = "1.8.8"
+version = "1.8.11"
description = "An implementation of the Debug Adapter Protocol for Python"
optional = false
python-versions = ">=3.8"
-files = [
- {file = "debugpy-1.8.8-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:e59b1607c51b71545cb3496876544f7186a7a27c00b436a62f285603cc68d1c6"},
- {file = "debugpy-1.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6531d952b565b7cb2fbd1ef5df3d333cf160b44f37547a4e7cf73666aca5d8d"},
- {file = "debugpy-1.8.8-cp310-cp310-win32.whl", hash = "sha256:b01f4a5e5c5fb1d34f4ccba99a20ed01eabc45a4684f4948b5db17a319dfb23f"},
- {file = "debugpy-1.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:535f4fb1c024ddca5913bb0eb17880c8f24ba28aa2c225059db145ee557035e9"},
- {file = "debugpy-1.8.8-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:c399023146e40ae373753a58d1be0a98bf6397fadc737b97ad612886b53df318"},
- {file = "debugpy-1.8.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09cc7b162586ea2171eea055985da2702b0723f6f907a423c9b2da5996ad67ba"},
- {file = "debugpy-1.8.8-cp311-cp311-win32.whl", hash = "sha256:eea8821d998ebeb02f0625dd0d76839ddde8cbf8152ebbe289dd7acf2cdc6b98"},
- {file = "debugpy-1.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:d4483836da2a533f4b1454dffc9f668096ac0433de855f0c22cdce8c9f7e10c4"},
- {file = "debugpy-1.8.8-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:0cc94186340be87b9ac5a707184ec8f36547fb66636d1029ff4f1cc020e53996"},
- {file = "debugpy-1.8.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64674e95916e53c2e9540a056e5f489e0ad4872645399d778f7c598eacb7b7f9"},
- {file = "debugpy-1.8.8-cp312-cp312-win32.whl", hash = "sha256:5c6e885dbf12015aed73770f29dec7023cb310d0dc2ba8bfbeb5c8e43f80edc9"},
- {file = "debugpy-1.8.8-cp312-cp312-win_amd64.whl", hash = "sha256:19ffbd84e757a6ca0113574d1bf5a2298b3947320a3e9d7d8dc3377f02d9f864"},
- {file = "debugpy-1.8.8-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:705cd123a773d184860ed8dae99becd879dfec361098edbefb5fc0d3683eb804"},
- {file = "debugpy-1.8.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890fd16803f50aa9cb1a9b9b25b5ec321656dd6b78157c74283de241993d086f"},
- {file = "debugpy-1.8.8-cp313-cp313-win32.whl", hash = "sha256:90244598214bbe704aa47556ec591d2f9869ff9e042e301a2859c57106649add"},
- {file = "debugpy-1.8.8-cp313-cp313-win_amd64.whl", hash = "sha256:4b93e4832fd4a759a0c465c967214ed0c8a6e8914bced63a28ddb0dd8c5f078b"},
- {file = "debugpy-1.8.8-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:143ef07940aeb8e7316de48f5ed9447644da5203726fca378f3a6952a50a9eae"},
- {file = "debugpy-1.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95651bdcbfd3b27a408869a53fbefcc2bcae13b694daee5f1365b1b83a00113"},
- {file = "debugpy-1.8.8-cp38-cp38-win32.whl", hash = "sha256:26b461123a030e82602a750fb24d7801776aa81cd78404e54ab60e8b5fecdad5"},
- {file = "debugpy-1.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3cbf1833e644a3100eadb6120f25be8a532035e8245584c4f7532937edc652a"},
- {file = "debugpy-1.8.8-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:53709d4ec586b525724819dc6af1a7703502f7e06f34ded7157f7b1f963bb854"},
- {file = "debugpy-1.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a9c013077a3a0000e83d97cf9cc9328d2b0bbb31f56b0e99ea3662d29d7a6a2"},
- {file = "debugpy-1.8.8-cp39-cp39-win32.whl", hash = "sha256:ffe94dd5e9a6739a75f0b85316dc185560db3e97afa6b215628d1b6a17561cb2"},
- {file = "debugpy-1.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5c0e5a38c7f9b481bf31277d2f74d2109292179081f11108e668195ef926c0f9"},
- {file = "debugpy-1.8.8-py2.py3-none-any.whl", hash = "sha256:ec684553aba5b4066d4de510859922419febc710df7bba04fe9e7ef3de15d34f"},
- {file = "debugpy-1.8.8.zip", hash = "sha256:e6355385db85cbd666be703a96ab7351bc9e6c61d694893206f8001e22aee091"},
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"},
+ {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"},
+ {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"},
+ {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"},
+ {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"},
+ {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"},
+ {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"},
+ {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"},
+ {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"},
+ {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"},
+ {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"},
+ {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"},
+ {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"},
+ {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"},
+ {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"},
+ {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"},
+ {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"},
+ {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"},
+ {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"},
+ {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"},
+ {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"},
+ {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"},
+ {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"},
+ {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"},
+ {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"},
+ {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"},
]
[[package]]
@@ -584,6 +876,8 @@ version = "5.1.1"
description = "Decorators for Humans"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
{file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
@@ -595,6 +889,8 @@ version = "0.7.1"
description = "XML bomb protection for Python stdlib modules"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"},
{file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"},
@@ -606,6 +902,8 @@ version = "0.3.9"
description = "Distribution utilities"
optional = false
python-versions = "*"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"},
{file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"},
@@ -617,6 +915,8 @@ version = "1.2.2"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
+groups = ["main", "dev"]
+markers = "python_version < \"3.11\""
files = [
{file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
{file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
@@ -631,6 +931,8 @@ version = "2.1.0"
description = "Get the currently executing AST node of a frame, and other information"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"},
{file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"},
@@ -641,13 +943,15 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth
[[package]]
name = "fastjsonschema"
-version = "2.20.0"
+version = "2.21.1"
description = "Fastest Python implementation of JSON schema"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"},
- {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"},
+ {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"},
+ {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"},
]
[package.extras]
@@ -659,6 +963,8 @@ version = "3.16.1"
description = "A platform independent file lock."
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"},
{file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"},
@@ -671,61 +977,63 @@ typing = ["typing-extensions (>=4.12.2)"]
[[package]]
name = "fonttools"
-version = "4.55.0"
+version = "4.55.3"
description = "Tools to manipulate font files"
optional = false
python-versions = ">=3.8"
-files = [
- {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61"},
- {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69"},
- {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f"},
- {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60"},
- {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6"},
- {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81"},
- {file = "fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880"},
- {file = "fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b"},
- {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"},
- {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"},
- {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"},
- {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"},
- {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"},
- {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"},
- {file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"},
- {file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"},
- {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7"},
- {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246"},
- {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a"},
- {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40"},
- {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d"},
- {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c"},
- {file = "fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6"},
- {file = "fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c"},
- {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9"},
- {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c"},
- {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c"},
- {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd"},
- {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4"},
- {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18"},
- {file = "fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b"},
- {file = "fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998"},
- {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00f7cf55ad58a57ba421b6a40945b85ac7cc73094fb4949c41171d3619a3a47e"},
- {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f27526042efd6f67bfb0cc2f1610fa20364396f8b1fc5edb9f45bb815fb090b2"},
- {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e67974326af6a8879dc2a4ec63ab2910a1c1a9680ccd63e4a690950fceddbe"},
- {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61dc0a13451143c5e987dec5254d9d428f3c2789a549a7cf4f815b63b310c1cc"},
- {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e526b325a903868c62155a6a7e24df53f6ce4c5c3160214d8fe1be2c41b478"},
- {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b7ef9068a1297714e6fefe5932c33b058aa1d45a2b8be32a4c6dee602ae22b5c"},
- {file = "fonttools-4.55.0-cp38-cp38-win32.whl", hash = "sha256:55718e8071be35dff098976bc249fc243b58efa263768c611be17fe55975d40a"},
- {file = "fonttools-4.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:553bd4f8cc327f310c20158e345e8174c8eed49937fb047a8bda51daf2c353c8"},
- {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f901cef813f7c318b77d1c5c14cf7403bae5cb977cede023e22ba4316f0a8f6"},
- {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c9679fc0dd7e8a5351d321d8d29a498255e69387590a86b596a45659a39eb0d"},
- {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2820a8b632f3307ebb0bf57948511c2208e34a4939cf978333bc0a3f11f838"},
- {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23bbbb49bec613a32ed1b43df0f2b172313cee690c2509f1af8fdedcf0a17438"},
- {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a656652e1f5d55b9728937a7e7d509b73d23109cddd4e89ee4f49bde03b736c6"},
- {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f50a1f455902208486fbca47ce33054208a4e437b38da49d6721ce2fef732fcf"},
- {file = "fonttools-4.55.0-cp39-cp39-win32.whl", hash = "sha256:161d1ac54c73d82a3cded44202d0218ab007fde8cf194a23d3dd83f7177a2f03"},
- {file = "fonttools-4.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:ca7fd6987c68414fece41c96836e945e1f320cda56fc96ffdc16e54a44ec57a2"},
- {file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"},
- {file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"},
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"},
+ {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"},
+ {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"},
+ {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"},
+ {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"},
+ {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"},
+ {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"},
+ {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"},
+ {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"},
+ {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"},
+ {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"},
+ {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"},
+ {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"},
+ {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"},
+ {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"},
+ {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"},
+ {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"},
+ {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"},
+ {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"},
+ {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"},
+ {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"},
+ {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"},
+ {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"},
+ {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"},
+ {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"},
+ {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"},
+ {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"},
+ {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"},
+ {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"},
+ {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"},
+ {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"},
+ {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"},
+ {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"},
+ {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"},
+ {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"},
+ {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"},
+ {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"},
+ {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"},
+ {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"},
+ {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"},
+ {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"},
+ {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"},
+ {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"},
+ {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"},
+ {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"},
+ {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"},
+ {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"},
+ {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"},
+ {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"},
+ {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"},
]
[package.extras]
@@ -748,17 +1056,124 @@ version = "1.5.1"
description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers"
optional = false
python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"},
{file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"},
]
+[[package]]
+name = "frozenlist"
+version = "1.5.0"
+description = "A list-like structure which implements collections.abc.MutableSequence"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"},
+ {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"},
+ {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"},
+ {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"},
+ {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"},
+ {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"},
+ {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"},
+ {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"},
+ {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"},
+ {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"},
+ {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"},
+ {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"},
+ {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"},
+ {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"},
+ {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"},
+ {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"},
+ {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"},
+ {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"},
+ {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"},
+ {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"},
+ {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"},
+ {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"},
+ {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"},
+ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"},
+ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"},
+ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"},
+ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"},
+ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"},
+ {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"},
+ {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"},
+ {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"},
+ {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"},
+ {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"},
+ {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"},
+ {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"},
+ {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"},
+ {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"},
+ {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"},
+ {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"},
+ {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"},
+ {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"},
+ {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"},
+ {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"},
+ {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"},
+ {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"},
+ {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"},
+ {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"},
+ {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"},
+ {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"},
+ {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"},
+ {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"},
+ {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"},
+ {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"},
+ {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"},
+ {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"},
+ {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"},
+ {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"},
+ {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"},
+ {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"},
+ {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"},
+ {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"},
+ {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"},
+ {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"},
+ {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"},
+ {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"},
+ {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"},
+ {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"},
+ {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"},
+ {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"},
+ {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"},
+ {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"},
+ {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"},
+ {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"},
+ {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"},
+ {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"},
+ {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"},
+ {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"},
+ {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"},
+ {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"},
+ {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"},
+ {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"},
+ {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"},
+ {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"},
+ {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"},
+ {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"},
+ {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"},
+ {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"},
+ {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"},
+ {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"},
+ {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"},
+ {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"},
+ {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"},
+]
+
[[package]]
name = "h11"
version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
@@ -766,13 +1181,15 @@ files = [
[[package]]
name = "httpcore"
-version = "1.0.6"
+version = "1.0.7"
description = "A minimal low-level HTTP client."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"},
- {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"},
+ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
+ {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
]
[package.dependencies]
@@ -787,13 +1204,15 @@ trio = ["trio (>=0.22.0,<1.0)"]
[[package]]
name = "httpx"
-version = "0.27.2"
+version = "0.28.1"
description = "The next generation HTTP client."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"},
- {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"},
+ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
+ {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
]
[package.dependencies]
@@ -801,7 +1220,6 @@ anyio = "*"
certifi = "*"
httpcore = "==1.*"
idna = "*"
-sniffio = "*"
[package.extras]
brotli = ["brotli", "brotlicffi"]
@@ -812,13 +1230,15 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "identify"
-version = "2.6.2"
+version = "2.6.3"
description = "File identification library for Python"
optional = false
python-versions = ">=3.9"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "identify-2.6.2-py2.py3-none-any.whl", hash = "sha256:c097384259f49e372f4ea00a19719d95ae27dd5ff0fd77ad630aa891306b82f3"},
- {file = "identify-2.6.2.tar.gz", hash = "sha256:fab5c716c24d7a789775228823797296a2994b075fb6080ac83a102772a98cbd"},
+ {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"},
+ {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"},
]
[package.extras]
@@ -830,6 +1250,8 @@ version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
@@ -844,6 +1266,8 @@ version = "2.0.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -855,6 +1279,8 @@ version = "6.29.5"
description = "IPython Kernel for Jupyter"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"},
{file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"},
@@ -884,13 +1310,15 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio
[[package]]
name = "ipython"
-version = "8.29.0"
+version = "8.31.0"
description = "IPython: Productive Interactive Computing"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "ipython-8.29.0-py3-none-any.whl", hash = "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8"},
- {file = "ipython-8.29.0.tar.gz", hash = "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb"},
+ {file = "ipython-8.31.0-py3-none-any.whl", hash = "sha256:46ec58f8d3d076a61d128fe517a51eb730e3aaf0c184ea8c17d16e366660c6a6"},
+ {file = "ipython-8.31.0.tar.gz", hash = "sha256:b6a2274606bec6166405ff05e54932ed6e5cfecaca1fc05f2cacde7bb074d70b"},
]
[package.dependencies]
@@ -900,16 +1328,16 @@ exceptiongroup = {version = "*", markers = "python_version < \"3.11\""}
jedi = ">=0.16"
matplotlib-inline = "*"
pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""}
-prompt-toolkit = ">=3.0.41,<3.1.0"
+prompt_toolkit = ">=3.0.41,<3.1.0"
pygments = ">=2.4.0"
-stack-data = "*"
+stack_data = "*"
traitlets = ">=5.13.0"
-typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""}
+typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""}
[package.extras]
all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"]
black = ["black"]
-doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"]
+doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing_extensions"]
kernel = ["ipykernel"]
matplotlib = ["matplotlib"]
nbconvert = ["nbconvert"]
@@ -926,6 +1354,8 @@ version = "20.11.0"
description = "Operations with ISO 8601 durations"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"},
{file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"},
@@ -940,6 +1370,8 @@ version = "0.19.2"
description = "An autocompletion tool for Python that can be used for text editors."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"},
{file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"},
@@ -955,13 +1387,15 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"]
[[package]]
name = "jinja2"
-version = "3.1.4"
+version = "3.1.5"
description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"},
- {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"},
+ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
+ {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
]
[package.dependencies]
@@ -972,13 +1406,15 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "json5"
-version = "0.9.28"
+version = "0.10.0"
description = "A Python implementation of the JSON5 data format."
optional = false
python-versions = ">=3.8.0"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "json5-0.9.28-py3-none-any.whl", hash = "sha256:29c56f1accdd8bc2e037321237662034a7e07921e2b7223281a5ce2c46f0c4df"},
- {file = "json5-0.9.28.tar.gz", hash = "sha256:1f82f36e615bc5b42f1bbd49dbc94b12563c56408c6ffa06414ea310890e9a6e"},
+ {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"},
+ {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"},
]
[package.extras]
@@ -990,6 +1426,8 @@ version = "3.0.0"
description = "Identify specific nodes in a JSON document (RFC 6901)"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"},
{file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"},
@@ -1001,6 +1439,8 @@ version = "4.23.0"
description = "An implementation of JSON Schema validation for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"},
{file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"},
@@ -1030,6 +1470,8 @@ version = "2024.10.1"
description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"},
{file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"},
@@ -1044,6 +1486,8 @@ version = "8.6.3"
description = "Jupyter protocol implementation and client libraries"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"},
{file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"},
@@ -1066,6 +1510,8 @@ version = "5.7.2"
description = "Jupyter core package. A base package on which Jupyter projects rely."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"},
{file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"},
@@ -1082,13 +1528,15 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"
[[package]]
name = "jupyter-events"
-version = "0.10.0"
+version = "0.11.0"
description = "Jupyter Event System library"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"},
- {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"},
+ {file = "jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf"},
+ {file = "jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90"},
]
[package.dependencies]
@@ -1102,7 +1550,7 @@ traitlets = ">=5.3"
[package.extras]
cli = ["click", "rich"]
-docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"]
+docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"]
test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"]
[[package]]
@@ -1111,6 +1559,8 @@ version = "2.2.5"
description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"},
{file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"},
@@ -1121,13 +1571,15 @@ jupyter-server = ">=1.1.2"
[[package]]
name = "jupyter-server"
-version = "2.14.2"
+version = "2.15.0"
description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"},
- {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"},
+ {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"},
+ {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"},
]
[package.dependencies]
@@ -1136,7 +1588,7 @@ argon2-cffi = ">=21.1"
jinja2 = ">=3.0.3"
jupyter-client = ">=7.4.4"
jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
-jupyter-events = ">=0.9.0"
+jupyter-events = ">=0.11.0"
jupyter-server-terminals = ">=0.4.4"
nbconvert = ">=6.4.4"
nbformat = ">=5.3.0"
@@ -1161,6 +1613,8 @@ version = "0.5.3"
description = "A Jupyter Server Extension Providing Terminals."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"},
{file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"},
@@ -1176,13 +1630,15 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>
[[package]]
name = "jupyterlab"
-version = "4.3.0"
+version = "4.3.4"
description = "JupyterLab computational environment"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "jupyterlab-4.3.0-py3-none-any.whl", hash = "sha256:f67e1095ad61ae04349024f0b40345062ab108a0c6998d9810fec6a3c1a70cd5"},
- {file = "jupyterlab-4.3.0.tar.gz", hash = "sha256:7c6835cbf8df0af0ec8a39332e85ff11693fb9a468205343b4fc0bfbc74817e5"},
+ {file = "jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952"},
+ {file = "jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0"},
]
[package.dependencies]
@@ -1196,7 +1652,7 @@ jupyter-server = ">=2.4.0,<3"
jupyterlab-server = ">=2.27.1,<3"
notebook-shim = ">=0.2"
packaging = "*"
-setuptools = ">=40.1.0"
+setuptools = ">=40.8.0"
tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""}
tornado = ">=6.2.0"
traitlets = "*"
@@ -1214,6 +1670,8 @@ version = "0.3.0"
description = "Pygments theme using JupyterLab CSS variables"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"},
{file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"},
@@ -1225,6 +1683,8 @@ version = "2.27.3"
description = "A set of server components for JupyterLab and JupyterLab like applications."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"},
{file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"},
@@ -1250,6 +1710,8 @@ version = "1.4.7"
description = "A fast implementation of the Cassowary constraint solver"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"},
{file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"},
@@ -1373,6 +1835,8 @@ version = "3.0.2"
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
@@ -1439,51 +1903,47 @@ files = [
[[package]]
name = "matplotlib"
-version = "3.9.2"
+version = "3.10.0"
description = "Python plotting package"
optional = false
-python-versions = ">=3.9"
-files = [
- {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"},
- {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"},
- {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"},
- {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"},
- {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"},
- {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"},
- {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"},
- {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"},
- {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"},
- {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"},
- {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"},
- {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"},
- {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"},
- {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"},
- {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"},
- {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"},
- {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"},
- {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"},
- {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"},
- {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"},
- {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"},
- {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"},
- {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"},
- {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"},
- {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"},
- {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"},
- {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"},
- {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"},
- {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"},
- {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"},
- {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"},
- {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"},
- {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"},
- {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"},
- {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"},
- {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"},
- {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"},
- {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"},
- {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"},
- {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"},
+python-versions = ">=3.10"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "matplotlib-3.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2c5829a5a1dd5a71f0e31e6e8bb449bc0ee9dbfb05ad28fc0c6b55101b3a4be6"},
+ {file = "matplotlib-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2a43cbefe22d653ab34bb55d42384ed30f611bcbdea1f8d7f431011a2e1c62e"},
+ {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:607b16c8a73943df110f99ee2e940b8a1cbf9714b65307c040d422558397dac5"},
+ {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01d2b19f13aeec2e759414d3bfe19ddfb16b13a1250add08d46d5ff6f9be83c6"},
+ {file = "matplotlib-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e6c6461e1fc63df30bf6f80f0b93f5b6784299f721bc28530477acd51bfc3d1"},
+ {file = "matplotlib-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:994c07b9d9fe8d25951e3202a68c17900679274dadfc1248738dcfa1bd40d7f3"},
+ {file = "matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363"},
+ {file = "matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997"},
+ {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef"},
+ {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683"},
+ {file = "matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765"},
+ {file = "matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a"},
+ {file = "matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59"},
+ {file = "matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a"},
+ {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95"},
+ {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8"},
+ {file = "matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12"},
+ {file = "matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc"},
+ {file = "matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25"},
+ {file = "matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908"},
+ {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2"},
+ {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf"},
+ {file = "matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae"},
+ {file = "matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede"},
+ {file = "matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c"},
+ {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81713dd0d103b379de4516b861d964b1d789a144103277769238c732229d7f03"},
+ {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:359f87baedb1f836ce307f0e850d12bb5f1936f70d035561f90d41d305fdacea"},
+ {file = "matplotlib-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80dc3a4add4665cf2faa90138384a7ffe2a4e37c58d83e115b54287c4f06ef"},
+ {file = "matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278"},
]
[package.dependencies]
@@ -1498,7 +1958,7 @@ pyparsing = ">=2.3.1"
python-dateutil = ">=2.7"
[package.extras]
-dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"]
+dev = ["meson-python (>=0.13.1,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"]
[[package]]
name = "matplotlib-inline"
@@ -1506,6 +1966,8 @@ version = "0.1.7"
description = "Inline Matplotlib backend for Jupyter"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"},
{file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"},
@@ -1520,20 +1982,130 @@ version = "3.0.2"
description = "A sane and fast Markdown parser with useful plugins and renderers"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"},
{file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"},
]
+[[package]]
+name = "multidict"
+version = "6.1.0"
+description = "multidict implementation"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"},
+ {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"},
+ {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"},
+ {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"},
+ {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"},
+ {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"},
+ {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"},
+ {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"},
+ {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"},
+ {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"},
+ {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"},
+ {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"},
+ {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"},
+ {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"},
+ {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""}
+
[[package]]
name = "nbclient"
-version = "0.10.0"
+version = "0.10.2"
description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor."
optional = false
-python-versions = ">=3.8.0"
+python-versions = ">=3.9.0"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"},
- {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"},
+ {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"},
+ {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"},
]
[package.dependencies]
@@ -1544,8 +2116,8 @@ traitlets = ">=5.4"
[package.extras]
dev = ["pre-commit"]
-docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"]
-test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"]
+docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"]
+test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"]
[[package]]
name = "nbconvert"
@@ -1553,6 +2125,8 @@ version = "7.16.4"
description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"},
{file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"},
@@ -1590,6 +2164,8 @@ version = "5.10.4"
description = "The Jupyter Notebook format"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"},
{file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"},
@@ -1611,6 +2187,8 @@ version = "1.6.0"
description = "Patch asyncio to allow nested event loops"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"},
{file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"},
@@ -1622,6 +2200,8 @@ version = "1.9.1"
description = "Node.js virtual environment builder"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"},
{file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"},
@@ -1633,6 +2213,8 @@ version = "0.2.4"
description = "A shim layer for notebook traits and config"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"},
{file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"},
@@ -1644,68 +2226,86 @@ jupyter-server = ">=1.8,<3"
[package.extras]
test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"]
+[[package]]
+name = "nova-galaxy"
+version = "0.4.0"
+description = "Utilties for accessing the ORNL Galaxy instance"
+optional = false
+python-versions = "<4.0,>=3.10"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "nova_galaxy-0.4.0-py3-none-any.whl", hash = "sha256:407ae4b272f5386bd23578daf8c0c9c48c3723fd9fd14aa7328ea38532427ab9"},
+]
+
+[package.dependencies]
+bioblend = ">=1.3.0,<2.0.0"
+tomli = ">=2.0.2,<3.0.0"
+
[[package]]
name = "numpy"
-version = "2.1.3"
+version = "2.2.1"
description = "Fundamental package for array computing in Python"
optional = false
python-versions = ">=3.10"
-files = [
- {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"},
- {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"},
- {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"},
- {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"},
- {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"},
- {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"},
- {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"},
- {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"},
- {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"},
- {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"},
- {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"},
- {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"},
- {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"},
- {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"},
- {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"},
- {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"},
- {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"},
- {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"},
- {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"},
- {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"},
- {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"},
- {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"},
- {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"},
- {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"},
- {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"},
- {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"},
- {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"},
- {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"},
- {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"},
- {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"},
- {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"},
- {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"},
- {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"},
- {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"},
- {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"},
- {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"},
- {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"},
- {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"},
- {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"},
- {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"},
- {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"},
- {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"},
- {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"},
- {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"},
- {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"},
- {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"},
- {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"},
- {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"},
- {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"},
- {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"},
- {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"},
- {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"},
- {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"},
- {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"},
- {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"},
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "numpy-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5edb4e4caf751c1518e6a26a83501fda79bff41cc59dac48d70e6d65d4ec4440"},
+ {file = "numpy-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa3017c40d513ccac9621a2364f939d39e550c542eb2a894b4c8da92b38896ab"},
+ {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:61048b4a49b1c93fe13426e04e04fdf5a03f456616f6e98c7576144677598675"},
+ {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7671dc19c7019103ca44e8d94917eba8534c76133523ca8406822efdd19c9308"},
+ {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4250888bcb96617e00bfa28ac24850a83c9f3a16db471eca2ee1f1714df0f957"},
+ {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7746f235c47abc72b102d3bce9977714c2444bdfaea7888d241b4c4bb6a78bf"},
+ {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:059e6a747ae84fce488c3ee397cee7e5f905fd1bda5fb18c66bc41807ff119b2"},
+ {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f62aa6ee4eb43b024b0e5a01cf65a0bb078ef8c395e8713c6e8a12a697144528"},
+ {file = "numpy-2.2.1-cp310-cp310-win32.whl", hash = "sha256:48fd472630715e1c1c89bf1feab55c29098cb403cc184b4859f9c86d4fcb6a95"},
+ {file = "numpy-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:b541032178a718c165a49638d28272b771053f628382d5e9d1c93df23ff58dbf"},
+ {file = "numpy-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40f9e544c1c56ba8f1cf7686a8c9b5bb249e665d40d626a23899ba6d5d9e1484"},
+ {file = "numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9b57eaa3b0cd8db52049ed0330747b0364e899e8a606a624813452b8203d5f7"},
+ {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bc8a37ad5b22c08e2dbd27df2b3ef7e5c0864235805b1e718a235bcb200cf1cb"},
+ {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9036d6365d13b6cbe8f27a0eaf73ddcc070cae584e5ff94bb45e3e9d729feab5"},
+ {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51faf345324db860b515d3f364eaa93d0e0551a88d6218a7d61286554d190d73"},
+ {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38efc1e56b73cc9b182fe55e56e63b044dd26a72128fd2fbd502f75555d92591"},
+ {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:31b89fa67a8042e96715c68e071a1200c4e172f93b0fbe01a14c0ff3ff820fc8"},
+ {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c86e2a209199ead7ee0af65e1d9992d1dce7e1f63c4b9a616500f93820658d0"},
+ {file = "numpy-2.2.1-cp311-cp311-win32.whl", hash = "sha256:b34d87e8a3090ea626003f87f9392b3929a7bbf4104a05b6667348b6bd4bf1cd"},
+ {file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"},
+ {file = "numpy-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:694f9e921a0c8f252980e85bce61ebbd07ed2b7d4fa72d0e4246f2f8aa6642ab"},
+ {file = "numpy-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3683a8d166f2692664262fd4900f207791d005fb088d7fdb973cc8d663626faa"},
+ {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:780077d95eafc2ccc3ced969db22377b3864e5b9a0ea5eb347cc93b3ea900315"},
+ {file = "numpy-2.2.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:55ba24ebe208344aa7a00e4482f65742969a039c2acfcb910bc6fcd776eb4355"},
+ {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b1d07b53b78bf84a96898c1bc139ad7f10fda7423f5fd158fd0f47ec5e01ac7"},
+ {file = "numpy-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5062dc1a4e32a10dc2b8b13cedd58988261416e811c1dc4dbdea4f57eea61b0d"},
+ {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fce4f615f8ca31b2e61aa0eb5865a21e14f5629515c9151850aa936c02a1ee51"},
+ {file = "numpy-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67d4cda6fa6ffa073b08c8372aa5fa767ceb10c9a0587c707505a6d426f4e046"},
+ {file = "numpy-2.2.1-cp312-cp312-win32.whl", hash = "sha256:32cb94448be47c500d2c7a95f93e2f21a01f1fd05dd2beea1ccd049bb6001cd2"},
+ {file = "numpy-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:ba5511d8f31c033a5fcbda22dd5c813630af98c70b2661f2d2c654ae3cdfcfc8"},
+ {file = "numpy-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1d09e520217618e76396377c81fba6f290d5f926f50c35f3a5f72b01a0da780"},
+ {file = "numpy-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ecc47cd7f6ea0336042be87d9e7da378e5c7e9b3c8ad0f7c966f714fc10d821"},
+ {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f419290bc8968a46c4933158c91a0012b7a99bb2e465d5ef5293879742f8797e"},
+ {file = "numpy-2.2.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b6c390bfaef8c45a260554888966618328d30e72173697e5cabe6b285fb2348"},
+ {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:526fc406ab991a340744aad7e25251dd47a6720a685fa3331e5c59fef5282a59"},
+ {file = "numpy-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74e6fdeb9a265624ec3a3918430205dff1df7e95a230779746a6af78bc615af"},
+ {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53c09385ff0b72ba79d8715683c1168c12e0b6e84fb0372e97553d1ea91efe51"},
+ {file = "numpy-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3eac17d9ec51be534685ba877b6ab5edc3ab7ec95c8f163e5d7b39859524716"},
+ {file = "numpy-2.2.1-cp313-cp313-win32.whl", hash = "sha256:9ad014faa93dbb52c80d8f4d3dcf855865c876c9660cb9bd7553843dd03a4b1e"},
+ {file = "numpy-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164a829b6aacf79ca47ba4814b130c4020b202522a93d7bff2202bfb33b61c60"},
+ {file = "numpy-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4dfda918a13cc4f81e9118dea249e192ab167a0bb1966272d5503e39234d694e"},
+ {file = "numpy-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:733585f9f4b62e9b3528dd1070ec4f52b8acf64215b60a845fa13ebd73cd0712"},
+ {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:89b16a18e7bba224ce5114db863e7029803c179979e1af6ad6a6b11f70545008"},
+ {file = "numpy-2.2.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:676f4eebf6b2d430300f1f4f4c2461685f8269f94c89698d832cdf9277f30b84"},
+ {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f5cdf9f493b35f7e41e8368e7d7b4bbafaf9660cba53fb21d2cd174ec09631"},
+ {file = "numpy-2.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1ad395cf254c4fbb5b2132fee391f361a6e8c1adbd28f2cd8e79308a615fe9d"},
+ {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08ef779aed40dbc52729d6ffe7dd51df85796a702afbf68a4f4e41fafdc8bda5"},
+ {file = "numpy-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:26c9c4382b19fcfbbed3238a14abf7ff223890ea1936b8890f058e7ba35e8d71"},
+ {file = "numpy-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:93cf4e045bae74c90ca833cba583c14b62cb4ba2cba0abd2b141ab52548247e2"},
+ {file = "numpy-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bff7d8ec20f5f42607599f9994770fa65d76edca264a87b5e4ea5629bce12268"},
+ {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7ba9cc93a91d86365a5d270dee221fdc04fb68d7478e6bf6af650de78a8339e3"},
+ {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3d03883435a19794e41f147612a77a8f56d4e52822337844fff3d4040a142964"},
+ {file = "numpy-2.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4511d9e6071452b944207c8ce46ad2f897307910b402ea5fa975da32e0102800"},
+ {file = "numpy-2.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5c5cc0cbabe9452038ed984d05ac87910f89370b9242371bd9079cb4af61811e"},
+ {file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"},
]
[[package]]
@@ -1714,6 +2314,8 @@ version = "7.7.0"
description = "A decorator to automatically detect mismatch when overriding a method."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"},
{file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"},
@@ -1725,6 +2327,8 @@ version = "24.2"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
+groups = ["main", "dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
@@ -1736,6 +2340,8 @@ version = "2.2.3"
description = "Powerful data structures for data analysis, time series, and statistics"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"},
{file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
@@ -1822,6 +2428,8 @@ version = "1.5.1"
description = "Utilities for writing pandoc filters in python"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"},
{file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"},
@@ -1833,6 +2441,8 @@ version = "0.8.4"
description = "A Python Parser"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
{file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
@@ -1848,6 +2458,8 @@ version = "4.9.0"
description = "Pexpect allows easy control of interactive console applications."
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\") or python_version >= \"3.12\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\")"
files = [
{file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
{file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
@@ -1862,6 +2474,8 @@ version = "11.0.0"
description = "Python Imaging Library (Fork)"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"},
{file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"},
@@ -1954,6 +2568,8 @@ version = "4.3.6"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
optional = false
python-versions = ">=3.8"
+groups = ["main", "dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
@@ -1970,6 +2586,8 @@ version = "1.5.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
@@ -1985,6 +2603,8 @@ version = "4.0.1"
description = "A framework for managing and maintaining multi-language pre-commit hooks."
optional = false
python-versions = ">=3.9"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"},
{file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"},
@@ -1999,13 +2619,15 @@ virtualenv = ">=20.10.0"
[[package]]
name = "prometheus-client"
-version = "0.21.0"
+version = "0.21.1"
description = "Python client for the Prometheus monitoring system."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "prometheus_client-0.21.0-py3-none-any.whl", hash = "sha256:4fa6b4dd0ac16d58bb587c04b1caae65b8c5043e85f778f42f5f632f6af2e166"},
- {file = "prometheus_client-0.21.0.tar.gz", hash = "sha256:96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e"},
+ {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"},
+ {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"},
]
[package.extras]
@@ -2017,6 +2639,8 @@ version = "3.0.48"
description = "Library for building powerful interactive command lines in Python"
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"},
{file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"},
@@ -2025,34 +2649,129 @@ files = [
[package.dependencies]
wcwidth = "*"
+[[package]]
+name = "propcache"
+version = "0.2.1"
+description = "Accelerated property cache"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"},
+ {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"},
+ {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"},
+ {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"},
+ {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"},
+ {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"},
+ {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"},
+ {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"},
+ {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"},
+ {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"},
+ {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"},
+ {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"},
+ {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"},
+ {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"},
+ {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"},
+ {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"},
+ {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"},
+ {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"},
+ {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"},
+ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"},
+ {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"},
+ {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"},
+ {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"},
+ {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"},
+ {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"},
+ {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"},
+ {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"},
+ {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"},
+ {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"},
+ {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"},
+ {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"},
+ {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"},
+ {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"},
+ {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"},
+ {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"},
+ {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"},
+ {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"},
+ {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"},
+ {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"},
+ {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"},
+ {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"},
+ {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"},
+ {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"},
+ {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"},
+ {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"},
+ {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"},
+ {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"},
+ {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"},
+ {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"},
+ {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"},
+ {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"},
+ {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"},
+ {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"},
+ {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"},
+ {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"},
+ {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"},
+ {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"},
+]
+
[[package]]
name = "psutil"
-version = "6.1.0"
+version = "6.1.1"
description = "Cross-platform lib for process and system monitoring in Python."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
-files = [
- {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"},
- {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"},
- {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"},
- {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"},
- {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"},
- {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"},
- {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"},
- {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"},
- {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"},
- {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"},
- {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"},
- {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"},
- {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"},
- {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"},
- {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"},
- {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"},
- {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"},
-]
-
-[package.extras]
-dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"]
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"},
+ {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"},
+ {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"},
+ {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"},
+ {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"},
+ {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"},
+ {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"},
+ {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"},
+ {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"},
+ {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"},
+ {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"},
+ {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"},
+ {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"},
+ {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"},
+ {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"},
+ {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"},
+ {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"},
+]
+
+[package.extras]
+dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"]
test = ["pytest", "pytest-xdist", "setuptools"]
[[package]]
@@ -2061,6 +2780,8 @@ version = "0.7.0"
description = "Run a subprocess in a pseudo terminal"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\") or python_version <= \"3.11\" and os_name != \"nt\" or python_version >= \"3.12\" and (sys_platform != \"win32\" and sys_platform != \"emscripten\") or python_version >= \"3.12\" and os_name != \"nt\""
files = [
{file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
{file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
@@ -2072,6 +2793,8 @@ version = "0.2.3"
description = "Safely evaluate AST nodes without side effects"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"},
{file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"},
@@ -2086,17 +2809,157 @@ version = "2.22"
description = "C parser in Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
]
+[[package]]
+name = "pydantic"
+version = "2.10.4"
+description = "Data validation using Python type hints"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"},
+ {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"},
+]
+
+[package.dependencies]
+annotated-types = ">=0.6.0"
+pydantic-core = "2.27.2"
+typing-extensions = ">=4.12.2"
+
+[package.extras]
+email = ["email-validator (>=2.0.0)"]
+timezone = ["tzdata"]
+
+[[package]]
+name = "pydantic-core"
+version = "2.27.2"
+description = "Core functionality for Pydantic validation and serialization"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"},
+ {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"},
+ {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"},
+ {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"},
+ {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"},
+ {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"},
+ {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"},
+ {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"},
+ {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"},
+ {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
+
[[package]]
name = "pygments"
version = "2.18.0"
description = "Pygments is a syntax highlighting package written in Python."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
{file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
@@ -2111,6 +2974,8 @@ version = "3.2.0"
description = "pyparsing module - Classes and methods to define and execute parsing grammars"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"},
{file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"},
@@ -2121,13 +2986,15 @@ diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pytest"
-version = "8.3.3"
+version = "8.3.4"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"},
- {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"},
+ {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
+ {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
]
[package.dependencies]
@@ -2141,12 +3008,34 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+[[package]]
+name = "pytest-cov"
+version = "6.0.0"
+description = "Pytest plugin for measuring coverage."
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0"},
+ {file = "pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35"},
+]
+
+[package.dependencies]
+coverage = {version = ">=7.5", extras = ["toml"]}
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"]
+
[[package]]
name = "python-dateutil"
version = "2.9.0.post0"
description = "Extensions to the standard Python datetime module"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
@@ -2157,21 +3046,28 @@ six = ">=1.5"
[[package]]
name = "python-json-logger"
-version = "2.0.7"
-description = "A python library adding a json log formatter"
+version = "3.2.1"
+description = "JSON Log Formatter for the Python Logging Package"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"},
- {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"},
+ {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"},
+ {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"},
]
+[package.extras]
+dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"]
+
[[package]]
name = "pytz"
version = "2024.2"
description = "World timezone definitions, modern and historical"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"},
{file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"},
@@ -2183,6 +3079,8 @@ version = "308"
description = "Python for Window Extensions"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" and sys_platform == \"win32\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""
files = [
{file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"},
{file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"},
@@ -2210,6 +3108,8 @@ version = "2.0.14"
description = "Pseudo terminal support for Windows from Python."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" and os_name == \"nt\" or python_version >= \"3.12\" and os_name == \"nt\""
files = [
{file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"},
{file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"},
@@ -2225,6 +3125,8 @@ version = "6.0.2"
description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main", "dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
@@ -2287,6 +3189,8 @@ version = "26.2.0"
description = "Python bindings for 0MQ"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"},
{file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"},
@@ -2408,6 +3312,8 @@ version = "0.35.1"
description = "JSON Referencing + Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"},
{file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"},
@@ -2423,6 +3329,8 @@ version = "2.32.3"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
@@ -2438,12 +3346,30 @@ urllib3 = ">=1.21.1,<3"
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
+[[package]]
+name = "requests-toolbelt"
+version = "1.0.0"
+description = "A utility belt for advanced users of python-requests"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"},
+ {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"},
+]
+
+[package.dependencies]
+requests = ">=2.0.1,<3.0.0"
+
[[package]]
name = "rfc3339-validator"
version = "0.1.4"
description = "A pure python RFC3339 validator"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"},
{file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"},
@@ -2458,6 +3384,8 @@ version = "0.1.1"
description = "Pure python rfc3986 validator"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"},
{file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"},
@@ -2465,101 +3393,116 @@ files = [
[[package]]
name = "rpds-py"
-version = "0.21.0"
+version = "0.22.3"
description = "Python bindings to Rust's persistent data structures (rpds)"
optional = false
python-versions = ">=3.9"
-files = [
- {file = "rpds_py-0.21.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590"},
- {file = "rpds_py-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:20cc1ed0bcc86d8e1a7e968cce15be45178fd16e2ff656a243145e0b439bd250"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad116dda078d0bc4886cb7840e19811562acdc7a8e296ea6ec37e70326c1b41c"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:808f1ac7cf3b44f81c9475475ceb221f982ef548e44e024ad5f9e7060649540e"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de552f4a1916e520f2703ec474d2b4d3f86d41f353e7680b597512ffe7eac5d0"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efec946f331349dfc4ae9d0e034c263ddde19414fe5128580f512619abed05f1"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b80b4690bbff51a034bfde9c9f6bf9357f0a8c61f548942b80f7b66356508bf5"},
- {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:085ed25baac88953d4283e5b5bd094b155075bb40d07c29c4f073e10623f9f2e"},
- {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:daa8efac2a1273eed2354397a51216ae1e198ecbce9036fba4e7610b308b6153"},
- {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:95a5bad1ac8a5c77b4e658671642e4af3707f095d2b78a1fdd08af0dfb647624"},
- {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3e53861b29a13d5b70116ea4230b5f0f3547b2c222c5daa090eb7c9c82d7f664"},
- {file = "rpds_py-0.21.0-cp310-none-win32.whl", hash = "sha256:ea3a6ac4d74820c98fcc9da4a57847ad2cc36475a8bd9683f32ab6d47a2bd682"},
- {file = "rpds_py-0.21.0-cp310-none-win_amd64.whl", hash = "sha256:b8f107395f2f1d151181880b69a2869c69e87ec079c49c0016ab96860b6acbe5"},
- {file = "rpds_py-0.21.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5555db3e618a77034954b9dc547eae94166391a98eb867905ec8fcbce1308d95"},
- {file = "rpds_py-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:97ef67d9bbc3e15584c2f3c74bcf064af36336c10d2e21a2131e123ce0f924c9"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ab2c2a26d2f69cdf833174f4d9d86118edc781ad9a8fa13970b527bf8236027"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4e8921a259f54bfbc755c5bbd60c82bb2339ae0324163f32868f63f0ebb873d9"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a7ff941004d74d55a47f916afc38494bd1cfd4b53c482b77c03147c91ac0ac3"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5145282a7cd2ac16ea0dc46b82167754d5e103a05614b724457cffe614f25bd8"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de609a6f1b682f70bb7163da745ee815d8f230d97276db049ab447767466a09d"},
- {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40c91c6e34cf016fa8e6b59d75e3dbe354830777fcfd74c58b279dceb7975b75"},
- {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d2132377f9deef0c4db89e65e8bb28644ff75a18df5293e132a8d67748397b9f"},
- {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0a9e0759e7be10109645a9fddaaad0619d58c9bf30a3f248a2ea57a7c417173a"},
- {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e20da3957bdf7824afdd4b6eeb29510e83e026473e04952dca565170cd1ecc8"},
- {file = "rpds_py-0.21.0-cp311-none-win32.whl", hash = "sha256:f71009b0d5e94c0e86533c0b27ed7cacc1239cb51c178fd239c3cfefefb0400a"},
- {file = "rpds_py-0.21.0-cp311-none-win_amd64.whl", hash = "sha256:e168afe6bf6ab7ab46c8c375606298784ecbe3ba31c0980b7dcbb9631dcba97e"},
- {file = "rpds_py-0.21.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:30b912c965b2aa76ba5168fd610087bad7fcde47f0a8367ee8f1876086ee6d1d"},
- {file = "rpds_py-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca9989d5d9b1b300bc18e1801c67b9f6d2c66b8fd9621b36072ed1df2c977f72"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f54e7106f0001244a5f4cf810ba8d3f9c542e2730821b16e969d6887b664266"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fed5dfefdf384d6fe975cc026886aece4f292feaf69d0eeb716cfd3c5a4dd8be"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:590ef88db231c9c1eece44dcfefd7515d8bf0d986d64d0caf06a81998a9e8cab"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f983e4c2f603c95dde63df633eec42955508eefd8d0f0e6d236d31a044c882d7"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b229ce052ddf1a01c67d68166c19cb004fb3612424921b81c46e7ea7ccf7c3bf"},
- {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ebf64e281a06c904a7636781d2e973d1f0926a5b8b480ac658dc0f556e7779f4"},
- {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:998a8080c4495e4f72132f3d66ff91f5997d799e86cec6ee05342f8f3cda7dca"},
- {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:98486337f7b4f3c324ab402e83453e25bb844f44418c066623db88e4c56b7c7b"},
- {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a78d8b634c9df7f8d175451cfeac3810a702ccb85f98ec95797fa98b942cea11"},
- {file = "rpds_py-0.21.0-cp312-none-win32.whl", hash = "sha256:a58ce66847711c4aa2ecfcfaff04cb0327f907fead8945ffc47d9407f41ff952"},
- {file = "rpds_py-0.21.0-cp312-none-win_amd64.whl", hash = "sha256:e860f065cc4ea6f256d6f411aba4b1251255366e48e972f8a347cf88077b24fd"},
- {file = "rpds_py-0.21.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ee4eafd77cc98d355a0d02f263efc0d3ae3ce4a7c24740010a8b4012bbb24937"},
- {file = "rpds_py-0.21.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:688c93b77e468d72579351a84b95f976bd7b3e84aa6686be6497045ba84be560"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c38dbf31c57032667dd5a2f0568ccde66e868e8f78d5a0d27dcc56d70f3fcd3b"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d6129137f43f7fa02d41542ffff4871d4aefa724a5fe38e2c31a4e0fd343fb0"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520ed8b99b0bf86a176271f6fe23024323862ac674b1ce5b02a72bfeff3fff44"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaeb25ccfb9b9014a10eaf70904ebf3f79faaa8e60e99e19eef9f478651b9b74"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af04ac89c738e0f0f1b913918024c3eab6e3ace989518ea838807177d38a2e94"},
- {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9b76e2afd585803c53c5b29e992ecd183f68285b62fe2668383a18e74abe7a3"},
- {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5afb5efde74c54724e1a01118c6e5c15e54e642c42a1ba588ab1f03544ac8c7a"},
- {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:52c041802a6efa625ea18027a0723676a778869481d16803481ef6cc02ea8cb3"},
- {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee1e4fc267b437bb89990b2f2abf6c25765b89b72dd4a11e21934df449e0c976"},
- {file = "rpds_py-0.21.0-cp313-none-win32.whl", hash = "sha256:0c025820b78817db6a76413fff6866790786c38f95ea3f3d3c93dbb73b632202"},
- {file = "rpds_py-0.21.0-cp313-none-win_amd64.whl", hash = "sha256:320c808df533695326610a1b6a0a6e98f033e49de55d7dc36a13c8a30cfa756e"},
- {file = "rpds_py-0.21.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:2c51d99c30091f72a3c5d126fad26236c3f75716b8b5e5cf8effb18889ced928"},
- {file = "rpds_py-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cbd7504a10b0955ea287114f003b7ad62330c9e65ba012c6223dba646f6ffd05"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dcc4949be728ede49e6244eabd04064336012b37f5c2200e8ec8eb2988b209c"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f414da5c51bf350e4b7960644617c130140423882305f7574b6cf65a3081cecb"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9afe42102b40007f588666bc7de82451e10c6788f6f70984629db193849dced1"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b929c2bb6e29ab31f12a1117c39f7e6d6450419ab7464a4ea9b0b417174f044"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8404b3717da03cbf773a1d275d01fec84ea007754ed380f63dfc24fb76ce4592"},
- {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e12bb09678f38b7597b8346983d2323a6482dcd59e423d9448108c1be37cac9d"},
- {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:58a0e345be4b18e6b8501d3b0aa540dad90caeed814c515e5206bb2ec26736fd"},
- {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c3761f62fcfccf0864cc4665b6e7c3f0c626f0380b41b8bd1ce322103fa3ef87"},
- {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c2b2f71c6ad6c2e4fc9ed9401080badd1469fa9889657ec3abea42a3d6b2e1ed"},
- {file = "rpds_py-0.21.0-cp39-none-win32.whl", hash = "sha256:b21747f79f360e790525e6f6438c7569ddbfb1b3197b9e65043f25c3c9b489d8"},
- {file = "rpds_py-0.21.0-cp39-none-win_amd64.whl", hash = "sha256:0626238a43152918f9e72ede9a3b6ccc9e299adc8ade0d67c5e142d564c9a83d"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6b4ef7725386dc0762857097f6b7266a6cdd62bfd209664da6712cb26acef035"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6bc0e697d4d79ab1aacbf20ee5f0df80359ecf55db33ff41481cf3e24f206919"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da52d62a96e61c1c444f3998c434e8b263c384f6d68aca8274d2e08d1906325c"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98e4fe5db40db87ce1c65031463a760ec7906ab230ad2249b4572c2fc3ef1f9f"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30bdc973f10d28e0337f71d202ff29345320f8bc49a31c90e6c257e1ccef4333"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:faa5e8496c530f9c71f2b4e1c49758b06e5f4055e17144906245c99fa6d45356"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32eb88c30b6a4f0605508023b7141d043a79b14acb3b969aa0b4f99b25bc7d4a"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a89a8ce9e4e75aeb7fa5d8ad0f3fecdee813802592f4f46a15754dcb2fd6b061"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:241e6c125568493f553c3d0fdbb38c74babf54b45cef86439d4cd97ff8feb34d"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3b766a9f57663396e4f34f5140b3595b233a7b146e94777b97a8413a1da1be18"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:af4a644bf890f56e41e74be7d34e9511e4954894d544ec6b8efe1e21a1a8da6c"},
- {file = "rpds_py-0.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3e30a69a706e8ea20444b98a49f386c17b26f860aa9245329bab0851ed100677"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:031819f906bb146561af051c7cef4ba2003d28cff07efacef59da973ff7969ba"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b876f2bc27ab5954e2fd88890c071bd0ed18b9c50f6ec3de3c50a5ece612f7a6"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc5695c321e518d9f03b7ea6abb5ea3af4567766f9852ad1560f501b17588c7b"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4de1da871b5c0fd5537b26a6fc6814c3cc05cabe0c941db6e9044ffbb12f04a"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:878f6fea96621fda5303a2867887686d7a198d9e0f8a40be100a63f5d60c88c9"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8eeec67590e94189f434c6d11c426892e396ae59e4801d17a93ac96b8c02a6c"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ff2eba7f6c0cb523d7e9cff0903f2fe1feff8f0b2ceb6bd71c0e20a4dcee271"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a429b99337062877d7875e4ff1a51fe788424d522bd64a8c0a20ef3021fdb6ed"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d167e4dbbdac48bd58893c7e446684ad5d425b407f9336e04ab52e8b9194e2ed"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:4eb2de8a147ffe0626bfdc275fc6563aa7bf4b6db59cf0d44f0ccd6ca625a24e"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e78868e98f34f34a88e23ee9ccaeeec460e4eaf6db16d51d7a9b883e5e785a5e"},
- {file = "rpds_py-0.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4991ca61656e3160cdaca4851151fd3f4a92e9eba5c7a530ab030d6aee96ec89"},
- {file = "rpds_py-0.21.0.tar.gz", hash = "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db"},
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"},
+ {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"},
+ {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"},
+ {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"},
+ {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"},
+ {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"},
+ {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"},
+ {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"},
+ {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"},
+ {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"},
+ {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"},
+ {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"},
+ {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"},
+ {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"},
+ {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"},
+ {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"},
+ {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"},
+ {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"},
+ {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"},
+ {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"},
+ {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"},
+ {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"},
+ {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"},
+ {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"},
+ {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"},
+ {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"},
+ {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"},
+ {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"},
+ {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"},
+ {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"},
+ {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"},
+ {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"},
+ {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"},
+ {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"},
+ {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"},
+ {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"},
+ {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"},
+ {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"},
+ {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"},
+ {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"},
+ {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"},
+ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"},
+ {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"},
+ {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"},
]
[[package]]
@@ -2568,6 +3511,8 @@ version = "1.14.1"
description = "Fundamental algorithms for scientific computing in Python"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"},
{file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"},
@@ -2618,6 +3563,8 @@ version = "1.8.3"
description = "Send file to trash natively under Mac OS X, Windows and Linux"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"},
{file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"},
@@ -2630,33 +3577,37 @@ win32 = ["pywin32"]
[[package]]
name = "setuptools"
-version = "75.5.0"
+version = "75.6.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829"},
- {file = "setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef"},
+ {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"},
+ {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"},
]
[package.extras]
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"]
-core = ["importlib-metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
+core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
cover = ["pytest-cov"]
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
enabler = ["pytest-enabler (>=2.2)"]
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
-type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"]
+type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"]
[[package]]
name = "six"
-version = "1.16.0"
+version = "1.17.0"
description = "Python 2 and 3 compatibility utilities"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
- {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
+ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
]
[[package]]
@@ -2665,6 +3616,8 @@ version = "1.3.1"
description = "Sniff out which async library your code is running under"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
@@ -2676,6 +3629,8 @@ version = "2.6"
description = "A modern CSS selector implementation for Beautiful Soup."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"},
{file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"},
@@ -2687,6 +3642,8 @@ version = "0.6.3"
description = "Extract data from python stack frames and tracebacks for informative displays"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
{file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
@@ -2706,6 +3663,8 @@ version = "0.18.1"
description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"},
{file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"},
@@ -2727,6 +3686,8 @@ version = "1.4.0"
description = "A tiny CSS parser"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"},
{file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"},
@@ -2739,35 +3700,82 @@ webencodings = ">=0.4"
doc = ["sphinx", "sphinx_rtd_theme"]
test = ["pytest", "ruff"]
+[[package]]
+name = "tinydb"
+version = "4.8.2"
+description = "TinyDB is a tiny, document oriented database optimized for your happiness :)"
+optional = false
+python-versions = "<4.0,>=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "tinydb-4.8.2-py3-none-any.whl", hash = "sha256:f97030ee5cbc91eeadd1d7af07ab0e48ceb04aa63d4a983adbaca4cba16e86c3"},
+ {file = "tinydb-4.8.2.tar.gz", hash = "sha256:f7dfc39b8d7fda7a1ca62a8dbb449ffd340a117c1206b68c50b1a481fb95181d"},
+]
+
[[package]]
name = "tomli"
-version = "2.1.0"
+version = "2.2.1"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
-files = [
- {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"},
- {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"},
-]
+groups = ["main", "dev"]
+files = [
+ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
+ {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
+ {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
+ {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
+ {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
+ {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
+ {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
+ {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
+ {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
+ {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
+]
+markers = {main = "python_version <= \"3.11\" or python_version >= \"3.12\"", dev = "python_full_version <= \"3.11.0a6\""}
[[package]]
name = "tornado"
-version = "6.4.1"
+version = "6.4.2"
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"},
- {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"},
- {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"},
- {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"},
- {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"},
- {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"},
- {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"},
+ {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"},
+ {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"},
+ {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"},
+ {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"},
+ {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"},
+ {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"},
+ {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"},
]
[[package]]
@@ -2776,6 +3784,8 @@ version = "5.14.3"
description = "Traitlets Python configuration system"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"},
{file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"},
@@ -2785,15 +3795,39 @@ files = [
docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"]
test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"]
+[[package]]
+name = "tuspy"
+version = "1.1.0"
+description = "A Python client for the tus resumable upload protocol -> http://tus.io"
+optional = false
+python-versions = ">=3.5.3"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "tuspy-1.1.0-py3-none-any.whl", hash = "sha256:7fc5ac8fb25de37c96c90213f83a1ffdede7f48a471cb5a15a2f57846828a79a"},
+ {file = "tuspy-1.1.0.tar.gz", hash = "sha256:156734eac5c61a046cfecd70f14119f05be92cce198eb5a1a99a664482bedb89"},
+]
+
+[package.dependencies]
+aiohttp = ">=3.6.2"
+requests = ">=2.18.4"
+tinydb = ">=3.5.0"
+
+[package.extras]
+dev = ["Sphinx (==1.7.1)", "sphinx-autobuild (==2021.3.14)", "tox (>=2.3.1)"]
+test = ["aioresponses (>=0.6.2)", "coverage (>=4.2)", "parametrize (>=0.1.1)", "pytest (>=3.0.3)", "pytest-cov (>=2.3.1,<2.6)", "responses (>=0.5.1)"]
+
[[package]]
name = "types-python-dateutil"
-version = "2.9.0.20241003"
+version = "2.9.0.20241206"
description = "Typing stubs for python-dateutil"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"},
- {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"},
+ {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"},
+ {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"},
]
[[package]]
@@ -2802,6 +3836,8 @@ version = "4.12.2"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
@@ -2813,6 +3849,8 @@ version = "2024.2"
description = "Provider of IANA time zone data"
optional = false
python-versions = ">=2"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"},
{file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"},
@@ -2824,6 +3862,8 @@ version = "1.3.0"
description = "RFC 6570 URI Template Processor"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"},
{file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"},
@@ -2834,13 +3874,15 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake
[[package]]
name = "urllib3"
-version = "2.2.3"
+version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
- {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
+ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
+ {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
]
[package.extras]
@@ -2851,13 +3893,15 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "virtualenv"
-version = "20.27.1"
+version = "20.28.0"
description = "Virtual Python Environment builder"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
- {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"},
- {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"},
+ {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"},
+ {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"},
]
[package.dependencies]
@@ -2875,6 +3919,8 @@ version = "0.2.13"
description = "Measures the displayed width of unicode strings in a terminal"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
{file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
@@ -2886,6 +3932,8 @@ version = "24.11.1"
description = "A library for working with the color formats defined by HTML and CSS."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"},
{file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"},
@@ -2897,6 +3945,8 @@ version = "0.5.1"
description = "Character encoding aliases for legacy web content"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
{file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
@@ -2908,6 +3958,8 @@ version = "1.8.0"
description = "WebSocket client for Python with low level API options"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
files = [
{file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"},
{file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"},
@@ -2918,7 +3970,105 @@ docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"]
optional = ["python-socks", "wsaccel"]
test = ["websockets"]
+[[package]]
+name = "yarl"
+version = "1.18.3"
+description = "Yet another URL library"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
+files = [
+ {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"},
+ {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"},
+ {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"},
+ {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"},
+ {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"},
+ {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"},
+ {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"},
+ {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"},
+ {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"},
+ {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"},
+ {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"},
+ {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"},
+ {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"},
+ {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"},
+ {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"},
+ {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"},
+ {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"},
+ {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"},
+ {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"},
+ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"},
+ {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"},
+ {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"},
+ {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"},
+ {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"},
+ {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"},
+ {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"},
+ {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"},
+ {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"},
+ {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"},
+ {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"},
+ {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"},
+ {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"},
+ {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"},
+ {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"},
+ {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"},
+ {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"},
+ {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"},
+ {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"},
+ {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"},
+ {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"},
+ {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"},
+ {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"},
+ {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"},
+ {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"},
+ {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"},
+ {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"},
+ {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"},
+ {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"},
+ {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"},
+ {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"},
+ {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"},
+ {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"},
+ {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"},
+ {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"},
+ {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"},
+ {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"},
+ {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"},
+]
+
+[package.dependencies]
+idna = ">=2.0"
+multidict = ">=4.0"
+propcache = ">=0.2.0"
+
[metadata]
-lock-version = "2.0"
-python-versions = "^3.10"
-content-hash = "d451d7d01850e6c5462ec9af8902821f4420caa9fac44b9a65c0a1af44056c1d"
+lock-version = "2.1"
+python-versions = ">=3.10,<4.0"
+content-hash = "26cf6d31cdfd04362a4ea619c0c04b1713819a584356e749cd93f51fef60e880"
diff --git a/pyproject.toml b/pyproject.toml
index 3f01e0b..3864e18 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,44 +1,72 @@
-[tool.poetry]
+[project]
name = "pleiades"
version = "0.1.1"
description = "PLEIADES - Python Libraries Extensions for Isotopic Analysis via Detailed Examination of SAMMY"
-authors = ["Alex M. Long "]
license = "MIT"
-packages = [
- { include = "pleiades", from = "src" }
+authors = [
+ {name = "Alex M. Long", email = "alexlong@lanl.gov"},
+ {name = "Tsviki Hirsh", email = "tsviki.hirsh@gmail.com"},
+ {name = "Chen Zhang", email = "zhangc@ornl.gov"},
+ {name = "Jean Bilheux", email = "bilheuxjm@ornl.gov"},
]
-include = [
- "nucDataLibs/**"
+requires-python = ">=3.10,<4.0"
+dependencies = [
+ "setuptools",
+ "numpy",
+ "scipy",
+ "pandas",
+ "matplotlib",
+ "jupyterlab",
+ "nova-galaxy",
+ "pyyaml",
+ "pydantic",
]
-[build-system]
-requires = ["poetry>=1.1.0"]
-build-backend = "poetry.core.masonry.api"
+[project.scripts]
+pleiades = "pleiades:main" # Console script entry point
+post_install_check = "pleiades.post_install:check_sammy_installed"
# ---------------------------------------------------------- #
# This section is for users who want to install via `poetry` #
# ---------------------------------------------------------- #
-[tool.poetry.dependencies]
-# Core
-python = "^3.10" # replace with the appropriate Python version
-setuptools = "*"
-# Numerical
-numpy = "*"
-scipy = "*"
-pandas = "*"
-# Visualization
-matplotlib = ">=3.1.2"
-# Notebooks
-jupyterlab = "^4.3.0"
-
-[tool.poetry.scripts]
-pleiades = "pleiades:main" # Console script entry point
-post_install_check = "pleiades.post_install:check_sammy_installed"
+[tool.poetry]
+packages = [
+ { include = "pleiades", from = "src" }
+]
+include = [
+ "src/pleiades/data/isotopes/*",
+ "src/pleiades/data/resonances/*",
+ "src/pleiades/data/cross_sections/*"
+]
-[tool.poetry.dev-dependencies]
-pytest = "*"
+[tool.poetry.group.dev.dependencies]
+pytest = "^8.3.4"
+pytest-cov = "^6.0.0"
pre-commit = "^4.0.1"
+[build-system]
+requires = ["poetry>=1.1.0"]
+build-backend = "poetry.core.masonry.api"
+
# --------------------------------------------- #
# The rest all 3rd party plugins configurations #
# --------------------------------------------- #
+[tool.pytest.ini_options]
+addopts = "-v --cov=pleiades --cov-report=term-missing"
+pythonpath = [
+ ".", "src", "scripts"
+]
+testpaths = ["tests"]
+python_files = ["test*.py"]
+norecursedirs = [".git", "tmp*", "_tmp*", "__pycache__", "*dataset*", "*data_set*"]
+
+[tool.coverage.report]
+exclude_lines = [
+ "if __name__ == .__main__.:"
+]
+
+[tool.ruff]
+line-length = 140
+
+[tool.ruff.lint]
+select = ["A", "ARG","ASYNC", "E", "F", "I", "UP032", "W"]
diff --git a/src/pleiades/core/__init__.py b/src/pleiades/core/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/pleiades/core/constants.py b/src/pleiades/core/constants.py
new file mode 100644
index 0000000..304652e
--- /dev/null
+++ b/src/pleiades/core/constants.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+"""Physical constants with validation."""
+
+from pydantic import BaseModel, ConfigDict, Field, computed_field
+
+
+class PhysicalConstants(BaseModel):
+ """Physical constants used in nuclear calculations."""
+
+ model_config = ConfigDict(frozen=True)
+
+ # Particle masses (use floats instead of Mass objects)
+ neutron_mass_amu: float = Field(default=1.008664915, description="Neutron mass in amu")
+ proton_mass_amu: float = Field(default=1.007276466, description="Proton mass in amu")
+ electron_mass_amu: float = Field(default=0.000548579909, description="Electron mass in amu")
+
+ # Fundamental constants
+ speed_of_light: float = Field(default=299792458.0, description="Speed of light in m/s")
+ planck_constant: float = Field(default=4.135667696e-15, description="Planck constant in eVâ‹…s")
+ boltzmann_constant: float = Field(default=8.617333262e-5, description="Boltzmann constant in eV/K")
+ elementary_charge: float = Field(default=1.602176634e-19, description="Elementary charge in Coulombs")
+ avogadro_number: float = Field(default=6.02214076e23, description="Avogadro's number in mol^-1")
+
+ # Nuclear physics constants
+ barn_to_cm2: float = Field(default=1e-24, description="Conversion factor from barns to cm²")
+ amu_to_kg: float = Field(default=1.660539067e-27, description="Conversion factor from amu to kg")
+
+ # Derived constants
+ @computed_field
+ @property
+ def neutron_mass_kg(self) -> float:
+ """Neutron mass in kilograms."""
+ return self.neutron_mass_amu * self.amu_to_kg
+
+ @computed_field
+ @property
+ def atomic_mass_unit_eV(self) -> float: # noqa: N802
+ """One atomic mass unit in eV/c²."""
+ return 931.494061e6 # MeV/c² to eV/c²
+
+
+# Create singleton instance
+CONSTANTS = PhysicalConstants()
diff --git a/src/pleiades/core/data_manager.py b/src/pleiades/core/data_manager.py
new file mode 100644
index 0000000..0ae644d
--- /dev/null
+++ b/src/pleiades/core/data_manager.py
@@ -0,0 +1,280 @@
+#!/usr/bin/env python
+"""Manages access to nuclear data files packaged with PLEIADES."""
+
+import functools
+import logging
+import re
+from importlib import resources
+from pathlib import Path
+from typing import Dict, List, Optional, Set
+
+from pleiades.core.models import CrossSectionPoint, DataCategory, IsotopeIdentifier, IsotopeInfo, IsotopeMassData
+
+logger = logging.getLogger(__name__)
+
+
+class NuclearDataManager:
+ """
+ Manages access to nuclear data files packaged with PLEIADES.
+
+ This class provides a centralized interface for accessing nuclear data files
+ that are distributed with the PLEIADES package. It handles path resolution,
+ validates file existence, and caches results for improved performance.
+ """
+
+ # Mapping of categories to their valid file extensions
+ _VALID_EXTENSIONS = {
+ DataCategory.ISOTOPES: {".info", ".mas20", ".list"},
+ DataCategory.RESONANCES: {".endf"},
+ DataCategory.CROSS_SECTIONS: {".tot"},
+ }
+
+ def __init__(self):
+ """Initialize the NuclearDataManager."""
+ self._cached_files: Dict[DataCategory, Set[Path]] = {}
+ self._initialize_cache()
+
+ def _initialize_cache(self) -> None:
+ """Initialize the cache of available files for each category."""
+ for category in DataCategory:
+ try:
+ category_path = self._get_category_path(category)
+ data_path = resources.files("pleiades.data").joinpath(category_path)
+ self._cached_files[category] = {
+ item.name for item in data_path.iterdir() if item.suffix in self._VALID_EXTENSIONS[category]
+ }
+ except Exception as e:
+ logger.error(f"Failed to initialize cache for {category}: {str(e)}")
+ self._cached_files[category] = set()
+
+ @staticmethod
+ def _get_category_path(category: DataCategory) -> str:
+ """Get the filesystem path for a category."""
+ return DataCategory.to_path(category)
+
+ @functools.lru_cache(maxsize=128)
+ def get_file_path(self, category: DataCategory, filename: str) -> Path:
+ """
+ Get the path to a specific data file.
+
+ Args:
+ category: The category of the data file
+ filename: The name of the file to retrieve
+
+ Returns:
+ Path to the requested file
+
+ Raises:
+ FileNotFoundError: If the file doesn't exist
+ ValueError: If the category is invalid or file extension is not allowed
+ """
+ if not isinstance(category, DataCategory):
+ raise ValueError(f"Invalid category: {category}")
+
+ file_path = Path(filename)
+ if file_path.suffix not in self._VALID_EXTENSIONS[category]:
+ raise ValueError(
+ f"Invalid file extension for {category}. " f"Allowed extensions: {self._VALID_EXTENSIONS[category]}"
+ )
+
+ try:
+ with resources.path(f"pleiades.data.{self._get_category_path(category)}", filename) as path:
+ if not path.exists():
+ raise FileNotFoundError(f"File {filename} not found in {category}")
+ return path
+ except Exception as e:
+ raise FileNotFoundError(f"Error accessing {filename} in {category}: {str(e)}")
+
+ def list_files(self, category: Optional[DataCategory] = None) -> Dict[DataCategory, List[str]]:
+ """
+ List available data files.
+
+ Args:
+ category: Optional specific category to list files for
+
+ Returns:
+ Dictionary mapping categories to lists of available filenames
+
+ Raises:
+ ValueError: If specified category is invalid
+ """
+ if category is not None:
+ if not isinstance(category, DataCategory):
+ raise ValueError(f"Invalid category: {category}")
+ return {category: sorted(self._cached_files[category])}
+
+ return {cat: sorted(self._cached_files[cat]) for cat in DataCategory}
+
+ def validate_file(self, category: DataCategory, filename: str) -> bool:
+ """
+ Validate that a file exists and has the correct extension.
+
+ Args:
+ category: The category of the file
+ filename: The name of the file to validate
+
+ Returns:
+ True if the file is valid, False otherwise
+ """
+ try:
+ path = Path(filename)
+ return path.suffix in self._VALID_EXTENSIONS[category] and path in self._cached_files[category]
+ except Exception:
+ return False
+
+ def get_isotope_info(self, isotope: IsotopeIdentifier) -> Optional[IsotopeInfo]:
+ """
+ Extract isotope information from the isotopes.info file.
+
+ Args:
+ isotope: IsotopeIdentifier instance
+
+ Returns:
+ IsotopeInfo containing spin and abundance if found, None otherwise
+ """
+ try:
+ with self.get_file_path(DataCategory.ISOTOPES, "isotopes.info").open() as f:
+ for line in f:
+ line = line.strip()
+ if line and line[0].isdigit():
+ data = line.split()
+ if data[3] == isotope.element and int(data[1]) == isotope.mass_number:
+ return IsotopeInfo(spin=float(data[5]), abundance=float(data[7]))
+ return None
+ except Exception as e:
+ logger.error(f"Error reading isotope info for {isotope}: {str(e)}")
+ raise
+
+ def get_mass_data(self, isotope: IsotopeIdentifier) -> Optional[IsotopeMassData]:
+ """
+ Extract mass data for an isotope from the mass.mas20 file.
+
+ Args:
+ isotope: IsotopeIdentifier instance
+
+ Returns:
+ IsotopeMassData containing atomic mass, mass uncertainty
+
+ Raises:
+ ValueError: If data cannot be parsed
+ """
+ try:
+ with self.get_file_path(DataCategory.ISOTOPES, "mass.mas20").open() as f:
+ # Skip header lines
+ for _ in range(36):
+ next(f)
+
+ for line in f:
+ if (isotope.element in line[:25]) and (str(isotope.mass_number) in line[:25]):
+ # Parse the line according to mass.mas20 format
+ atomic_mass_coarse = line[106:109].replace("*", "nan").replace("#", ".0")
+ atomic_mass_fine = line[110:124].replace("*", "nan").replace("#", ".0")
+
+ if "nan" not in [atomic_mass_coarse, atomic_mass_fine]:
+ atomic_mass = float(atomic_mass_coarse + atomic_mass_fine) / 1e6
+ else:
+ atomic_mass = float("nan")
+
+ return IsotopeMassData(
+ atomic_mass=atomic_mass,
+ mass_uncertainty=float(line[124:136].replace("*", "nan").replace("#", ".0")),
+ binding_energy=float(line[54:66].replace("*", "nan").replace("#", ".0")),
+ beta_decay_energy=float(line[81:93].replace("*", "nan").replace("#", ".0")),
+ )
+ return None
+ except Exception as e:
+ logger.error(f"Error reading mass data for {isotope}: {str(e)}")
+ raise
+
+ def read_cross_section_data(self, filename: str, isotope: IsotopeIdentifier) -> List[CrossSectionPoint]:
+ """
+ Read cross-section data from a .tot file for a specific isotope.
+
+ Args:
+ filename: Name of the cross-section file
+ isotope: IsotopeIdentifier instance
+
+ Returns:
+ List of CrossSectionPoint containing energy and cross-section values
+
+ Raises:
+ ValueError: If isotope data not found or file format is invalid
+ """
+ try:
+ data_points = []
+ isotope_found = False
+ capture_data = False
+
+ # Convert to string format expected in file (e.g., "U-238")
+ isotope_str = str(isotope)
+
+ with self.get_file_path(DataCategory.CROSS_SECTIONS, filename).open() as f:
+ for line in f:
+ if isotope_str.upper() in line:
+ isotope_found = True
+ elif isotope_found and "#data..." in line:
+ capture_data = True
+ elif isotope_found and "//" in line:
+ break
+ elif capture_data and not line.startswith("#"):
+ try:
+ energy_MeV, xs = line.split() # noqa: N806
+ data_points.append(
+ CrossSectionPoint(
+ energy=float(energy_MeV) * 1e6, # Convert MeV to eV
+ cross_section=float(xs),
+ )
+ )
+ except ValueError:
+ logger.warning(f"Skipping malformed line in {filename}: {line.strip()}")
+ continue
+
+ if not isotope_found:
+ raise ValueError(f"No data found for isotope {isotope_str} in {filename}")
+
+ return data_points
+ except Exception as e:
+ logger.error(f"Error reading cross-section data from {filename}: {str(e)}")
+ raise
+
+ def get_mat_number(self, isotope: IsotopeIdentifier) -> Optional[int]:
+ """
+ Get ENDF MAT number for an isotope.
+
+ Args:
+ isotope: IsotopeIdentifier instance
+
+ Returns:
+ ENDF MAT number if found, None otherwise
+
+ Raises:
+ ValueError: If isotope format is invalid
+ """
+ try:
+ with self.get_file_path(DataCategory.ISOTOPES, "neutrons.list").open() as f:
+ # Line matching breakdown:
+ # "496) 92-U -238 IAEA EVAL-DEC14 IAEA Consortium 9237"
+ # When line matches pattern
+ # We get groups:
+ # match.group(1) = "92"
+ # match.group(2) = "U"
+ # match.group(3) = "238"
+ # Check if constructed string matches input:
+ # match.expand(r"\2-\3") = "U-238"
+ # If match found, get MAT number:
+ # Take last 5 characters of line " 9237" -> 9237
+ pattern = r"\b\s*(\d+)\s*-\s*([A-Za-z]+)\s*-\s*(\d+)([A-Za-z]*)\b"
+
+ for line in f:
+ match = re.search(pattern, line)
+ if match and match.expand(r"\2-\3") == str(isotope):
+ return int(line[-5:])
+ return None
+ except Exception as e:
+ logger.error(f"Error getting MAT number for {isotope}: {str(e)}")
+ raise
+
+ def clear_cache(self) -> None:
+ """Clear the file cache and force reinitialization."""
+ self._cached_files.clear()
+ self._initialize_cache()
diff --git a/src/pleiades/core/models.py b/src/pleiades/core/models.py
new file mode 100644
index 0000000..50f1c37
--- /dev/null
+++ b/src/pleiades/core/models.py
@@ -0,0 +1,257 @@
+#!/usr/bin/env python
+"""Core physical quantity models with validation."""
+
+import math
+import re
+from enum import Enum, auto
+from pathlib import Path
+from typing import List, Optional
+
+from pydantic import BaseModel, ConfigDict, Field, computed_field, field_validator, model_validator
+from typing_extensions import Annotated
+
+from pleiades.core.constants import CONSTANTS
+
+NonNegativeFloat = Annotated[float, Field(ge=0)]
+PositiveFloat = Annotated[float, Field(gt=0)]
+
+
+class DataCategory(Enum):
+ """Enumeration of valid data categories."""
+
+ ISOTOPES = auto()
+ RESONANCES = auto()
+ CROSS_SECTIONS = auto()
+
+ @classmethod
+ def to_path(cls, category: "DataCategory") -> str:
+ """Convert category enum to path string."""
+ return category.name.lower()
+
+
+class IsotopeInfo(BaseModel):
+ model_config = ConfigDict(frozen=True)
+
+ spin: float = Field(ge=0)
+ abundance: float = Field(ge=0)
+
+
+class IsotopeIdentifier(BaseModel):
+ model_config = ConfigDict(frozen=True)
+
+ element: str = Field(pattern=r"^[A-Z][a-z]?$")
+ mass_number: int = Field(gt=0)
+
+ @classmethod
+ def from_string(cls, isotope_str: str) -> "IsotopeIdentifier":
+ match = re.match(r"([A-Za-z]+)-(\d+)", isotope_str)
+ if not match:
+ raise ValueError("Invalid isotope format")
+ return cls(element=match.group(1).capitalize(), mass_number=int(match.group(2)))
+
+ def __str__(self) -> str:
+ """Convert to string format 'element-mass_number'."""
+ return f"{self.element}-{self.mass_number}"
+
+
+class CrossSectionPoint(BaseModel):
+ model_config = ConfigDict(frozen=True)
+
+ energy: NonNegativeFloat = Field(description="Energy in eV")
+ cross_section: NonNegativeFloat = Field(description="Cross section in barns")
+
+
+class IsotopeMassData(BaseModel):
+ model_config = ConfigDict(frozen=True)
+
+ atomic_mass: float = Field(description="Mass in atomic mass units")
+ mass_uncertainty: NonNegativeFloat
+ binding_energy: Optional[float] = Field(description="Binding energy in MeV")
+ beta_decay_energy: Optional[float] = Field(description="Beta decay energy in MeV")
+
+
+class UnitType(str, Enum):
+ """Physical unit types with strict validation."""
+
+ ENERGY = "energy" # eV
+ MASS = "mass" # amu
+ LENGTH = "length" # m
+ CROSS_SECTION = "cross" # barns
+ TIME = "time" # s
+ TEMPERATURE = "temp" # K
+ DIMENSIONLESS = "none" # unitless
+
+ @property
+ def unit_symbol(self) -> str:
+ """Get standard unit symbol."""
+ return {
+ "energy": "eV",
+ "mass": "amu",
+ "length": "m",
+ "cross": "b",
+ "time": "s",
+ "temp": "K",
+ "none": "",
+ }[self.value]
+
+
+class PhysicalQuantity(BaseModel):
+ """Base model for physical quantities with validation."""
+
+ model_config = ConfigDict(frozen=True)
+
+ value: float = Field(description="Numerical value")
+ unit_type: UnitType = Field(description="Physical unit type")
+
+ @field_validator("value")
+ @classmethod
+ def validate_value(cls, v: float) -> float:
+ """Validate numerical value."""
+ if math.isnan(v):
+ raise ValueError("Value cannot be NaN")
+ if math.isinf(v):
+ raise ValueError("Value cannot be infinite")
+ return v
+
+ @computed_field
+ @property
+ def display_str(self) -> str:
+ """String representation with units."""
+ return f"{self.value} {self.unit_type.unit_symbol}"
+
+
+class Energy(PhysicalQuantity):
+ """Energy quantity with non-negative validation."""
+
+ value: NonNegativeFloat
+ unit_type: UnitType = Field(default=UnitType.ENERGY, frozen=True)
+
+ # Class methods are not affected by Pydantic v2 changes
+ @classmethod
+ def from_MeV(cls, value: float) -> "Energy": # noqa: N802
+ """Convert from MeV to eV."""
+ return cls(value=value * 1e6)
+
+ @computed_field
+ @property
+ def MeV(self) -> float: # noqa: N802
+ """Energy value in MeV."""
+ return self.value * 1e-6
+
+
+class Mass(PhysicalQuantity):
+ """Mass quantity with positive validation."""
+
+ value: PositiveFloat
+ unit_type: UnitType = Field(default=UnitType.MASS, frozen=True)
+
+ @computed_field
+ @property
+ def kg(self) -> float:
+ """Mass value in kilograms."""
+ return self.value * CONSTANTS.amu_to_kg
+
+
+class Temperature(PhysicalQuantity):
+ """Temperature quantity with non-negative validation."""
+
+ value: NonNegativeFloat
+ unit_type: UnitType = Field(default=UnitType.TEMPERATURE, frozen=True)
+
+
+class Isotope(BaseModel):
+ """
+ Represents an isotope with its physical properties and data.
+
+ Migration source: simData.py Isotope class
+ Changes made:
+ - Converted from regular class to Pydantic model
+ - Added proper type hints and validation
+ - Made immutable with ConfigDict(frozen=True)
+ - Added computed properties for derived values
+ """
+
+ model_config = ConfigDict(frozen=False)
+
+ # Core properties
+ identifier: IsotopeIdentifier
+ atomic_mass: Mass
+ thickness: NonNegativeFloat
+ thickness_unit: str = Field(pattern=r"^(cm|mm|atoms/cm2)$")
+ abundance: float = Field(ge=0.0, le=1.0)
+ density: NonNegativeFloat
+ density_unit: str = Field(default="g/cm3", pattern=r"^g/cm3$")
+
+ # Data source tracking
+ xs_file_location: Optional[Path] = None
+ xs_data: List[CrossSectionPoint] = Field(default_factory=list)
+
+ @model_validator(mode="after")
+ def validate_units(self) -> "Isotope":
+ """Validate unit compatibility."""
+ valid_thickness_units = {"cm", "mm", "atoms/cm2"}
+ if self.thickness_unit not in valid_thickness_units:
+ raise ValueError(f"Invalid thickness unit. Must be one of: {valid_thickness_units}")
+ if self.density_unit != "g/cm3":
+ raise ValueError("Density must be in g/cm3")
+ return self
+
+ @classmethod
+ def from_config(cls, config: dict) -> "Isotope":
+ """
+ Create an Isotope instance from configuration dictionary.
+
+ Migration note: Replaces load_isotopes_from_config in simData.py
+ """
+ identifier = IsotopeIdentifier.from_string(config["name"])
+
+ return cls(
+ identifier=identifier,
+ atomic_mass=Mass(value=config.get("atomic_mass", 0.0)),
+ thickness=float(config.get("thickness", 0.0)),
+ thickness_unit=config.get("thickness_unit", "cm"),
+ abundance=float(config.get("abundance", 0.0)),
+ density=float(config.get("density", 0.0)),
+ density_unit=config.get("density_unit", "g/cm3"),
+ xs_file_location=Path(config.get("xs_file_location", "")) if config.get("xs_file_location") else None,
+ )
+
+ @computed_field
+ @property
+ def areal_density(self) -> float:
+ """
+ Calculate areal density in atoms/barn.
+
+ Migration note: Moved from simData.py create_transmission function
+ """
+ if self.thickness_unit == "atoms/cm2":
+ return self.thickness * 1e-24 # Convert to atoms/barn
+
+ thickness_cm = self.thickness
+ if self.thickness_unit == "mm":
+ thickness_cm /= 10.0
+
+ return (
+ thickness_cm * self.density * CONSTANTS.avogadro_number / self.atomic_mass.value / 1e24
+ ) # Convert to atoms/barn
+
+
+# Unit conversion functions
+def eV_to_MeV(energy: Energy) -> float: # noqa: N802
+ """Convert energy from eV to MeV."""
+ return energy.value * 1e-6
+
+
+def MeV_to_eV(energy: float) -> Energy: # noqa: N802
+ """Convert energy from MeV to eV."""
+ return Energy(value=energy * 1e6)
+
+
+def barns_to_cm2(cross_section: float) -> float:
+ """Convert cross section from barns to cm²."""
+ return cross_section * CONSTANTS.barn_to_cm2
+
+
+def cm2_to_barns(cross_section: float) -> float:
+ """Convert cross section from cm² to barns."""
+ return cross_section / CONSTANTS.barn_to_cm2
diff --git a/src/pleiades/core/transmission.py b/src/pleiades/core/transmission.py
new file mode 100644
index 0000000..f4cc3bc
--- /dev/null
+++ b/src/pleiades/core/transmission.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+"""
+Neutron transmission calculations.
+
+Migration source: simData.py
+Changes:
+- Added type hints and validation
+- Improved error handling
+- Used Pydantic models for data validation
+- Added logging
+"""
+
+import logging
+from typing import List, Tuple
+
+import numpy as np
+from scipy.interpolate import interp1d
+
+from pleiades.core.models import Isotope
+
+logger = logging.getLogger(__name__)
+
+
+class TransmissionError(Exception):
+ """Base exception for transmission calculation errors."""
+
+ pass
+
+
+def calculate_transmission(isotope: Isotope, energies: List[float]) -> List[Tuple[float, float]]:
+ """
+ Calculate transmission values for given energies.
+
+ Migration source: simData.py create_transmission()
+ Changes:
+ - Added type hints
+ - Improved error handling
+ - Used Pydantic models for validation
+ - Added logging
+
+ Args:
+ isotope: Isotope instance with loaded cross-section data
+ energies: List of energy values in eV
+
+ Returns:
+ List of (energy, transmission) tuples
+
+ Raises:
+ TransmissionError: If calculation fails
+ """
+ try:
+ if not isotope.xs_data:
+ raise TransmissionError("No cross-section data loaded")
+
+ # Create interpolation function
+ xs_energies = [pt.energy for pt in isotope.xs_data]
+ xs_values = [pt.cross_section for pt in isotope.xs_data]
+
+ xs_interp = interp1d(xs_energies, xs_values, kind="linear", fill_value="extrapolate")
+
+ # Calculate transmissions
+ transmissions = []
+ for energy in energies:
+ xs = float(xs_interp(energy))
+ trans = min(1.0, np.exp(-xs * isotope.areal_density))
+ transmissions.append((energy, trans))
+
+ return transmissions
+
+ except Exception as e:
+ raise TransmissionError(f"Transmission calculation failed: {str(e)}") from e
diff --git a/src/pleiades/data/__init__.py b/src/pleiades/data/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/nucDataLibs/xSections/ag-n.tot b/src/pleiades/data/cross_sections/ag-n.tot
similarity index 100%
rename from nucDataLibs/xSections/ag-n.tot
rename to src/pleiades/data/cross_sections/ag-n.tot
diff --git a/nucDataLibs/xSections/au-n.tot b/src/pleiades/data/cross_sections/au-n.tot
similarity index 100%
rename from nucDataLibs/xSections/au-n.tot
rename to src/pleiades/data/cross_sections/au-n.tot
diff --git a/nucDataLibs/xSections/pu-n.tot b/src/pleiades/data/cross_sections/pu-n.tot
similarity index 100%
rename from nucDataLibs/xSections/pu-n.tot
rename to src/pleiades/data/cross_sections/pu-n.tot
diff --git a/nucDataLibs/xSections/ta-n.tot b/src/pleiades/data/cross_sections/ta-n.tot
similarity index 100%
rename from nucDataLibs/xSections/ta-n.tot
rename to src/pleiades/data/cross_sections/ta-n.tot
diff --git a/nucDataLibs/xSections/u-n.tot b/src/pleiades/data/cross_sections/u-n.tot
similarity index 100%
rename from nucDataLibs/xSections/u-n.tot
rename to src/pleiades/data/cross_sections/u-n.tot
diff --git a/nucDataLibs/xSections/w-n.tot b/src/pleiades/data/cross_sections/w-n.tot
similarity index 100%
rename from nucDataLibs/xSections/w-n.tot
rename to src/pleiades/data/cross_sections/w-n.tot
diff --git a/nucDataLibs/isotopeInfo/isotopes.info b/src/pleiades/data/isotopes/isotopes.info
similarity index 100%
rename from nucDataLibs/isotopeInfo/isotopes.info
rename to src/pleiades/data/isotopes/isotopes.info
diff --git a/nucDataLibs/isotopeInfo/mass.mas20 b/src/pleiades/data/isotopes/mass.mas20
similarity index 100%
rename from nucDataLibs/isotopeInfo/mass.mas20
rename to src/pleiades/data/isotopes/mass.mas20
diff --git a/nucDataLibs/isotopeInfo/neutrons.list b/src/pleiades/data/isotopes/neutrons.list
similarity index 100%
rename from nucDataLibs/isotopeInfo/neutrons.list
rename to src/pleiades/data/isotopes/neutrons.list
diff --git a/nucDataLibs/resonanceTables/res_endf8.endf b/src/pleiades/data/resonances/res_endf8.endf
similarity index 100%
rename from nucDataLibs/resonanceTables/res_endf8.endf
rename to src/pleiades/data/resonances/res_endf8.endf
diff --git a/src/pleiades/sammy/__init__.py b/src/pleiades/sammy/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/pleiades/sammy/backends/__init__.py b/src/pleiades/sammy/backends/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/pleiades/sammy/backends/docker.py b/src/pleiades/sammy/backends/docker.py
new file mode 100644
index 0000000..5f7609b
--- /dev/null
+++ b/src/pleiades/sammy/backends/docker.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python
+"""Docker backend implementation for SAMMY execution."""
+
+import logging
+import shutil
+import subprocess
+import textwrap
+from datetime import datetime
+from pathlib import Path
+from uuid import uuid4
+
+from pleiades.sammy.config import DockerSammyConfig
+from pleiades.sammy.interface import (
+ EnvironmentPreparationError,
+ SammyExecutionError,
+ SammyExecutionResult,
+ SammyFiles,
+ SammyRunner,
+)
+
+logger = logging.getLogger(__name__)
+
+
+class DockerSammyRunner(SammyRunner):
+ """Implementation of SAMMY runner for Docker container."""
+
+ def __init__(self, config: DockerSammyConfig):
+ super().__init__(config)
+ self.config = config
+ self._moved_files = []
+
+ def prepare_environment(self, files: SammyFiles) -> None:
+ """
+ Prepare environment for Docker SAMMY execution.
+
+ Args:
+ files: Container with paths to required input files
+
+ Raises:
+ EnvironmentPreparationError: If preparation fails
+ """
+ try:
+ # Validate input files exist
+ files.validate()
+
+ # Validate docker is available
+ if shutil.which("docker") is None:
+ raise EnvironmentPreparationError("Docker not found in PATH")
+
+ # Verify docker image exists
+ result = subprocess.run(
+ ["docker", "image", "inspect", self.config.image_name], capture_output=True, text=True
+ )
+ if result.returncode != 0:
+ raise EnvironmentPreparationError(f"Docker image not found: {self.config.image_name}")
+
+ except EnvironmentPreparationError:
+ raise # Reraise to avoid double logging
+ except Exception as e:
+ raise EnvironmentPreparationError(f"Environment preparation failed: {str(e)}")
+
+ def execute_sammy(self, files: SammyFiles) -> SammyExecutionResult:
+ """
+ Execute SAMMY using Docker container.
+
+ Args:
+ files: Container with paths to required input files
+
+ Returns:
+ SammyExecutionResult containing execution status and outputs
+
+ Raises:
+ SammyExecutionError: If execution fails
+ """
+ execution_id = str(uuid4())
+ start_time = datetime.now()
+
+ logger.info(f"Starting SAMMY execution {execution_id} in Docker")
+ logger.debug(f"Input files from: {files.input_file.parent}")
+ logger.debug(f"Working directory: {self.config.working_dir}")
+
+ # Prepare container paths for input files
+ container_input = str(self.config.container_data_dir / files.input_file.name)
+ container_params = str(self.config.container_data_dir / files.parameter_file.name)
+ container_data = str(self.config.container_data_dir / files.data_file.name)
+
+ # Construct docker run command
+ docker_cmd = [
+ "docker",
+ "run",
+ "--rm", # Remove container after execution
+ "-i", # Interactive mode for heredoc input
+ # Mount working directory
+ "-v",
+ f"{self.config.working_dir}:{self.config.container_working_dir}",
+ # Mount data directory
+ "-v",
+ f"{files.input_file.parent}:{self.config.container_data_dir}",
+ # Set working directory
+ "-w",
+ str(self.config.container_working_dir),
+ # Image name
+ self.config.image_name,
+ # SAMMY command (will receive input via stdin)
+ "sammy",
+ ]
+
+ # Prepare SAMMY input
+ sammy_input = textwrap.dedent(f"""\
+ {container_input}
+ {container_params}
+ {container_data}
+ """)
+
+ try:
+ process = subprocess.run(docker_cmd, input=sammy_input, text=True, capture_output=True)
+
+ end_time = datetime.now()
+ console_output = process.stdout + process.stderr
+
+ if process.returncode != 0:
+ logger.error(f"Docker execution failed with code {process.returncode}")
+ return SammyExecutionResult(
+ success=False,
+ execution_id=execution_id,
+ start_time=start_time,
+ end_time=end_time,
+ console_output=console_output,
+ error_message=f"Docker execution failed with code {process.returncode}",
+ )
+
+ # Check SAMMY output for success
+ success = " Normal finish to SAMMY" in console_output
+ error_message = None if success else "SAMMY execution failed"
+
+ if not success:
+ logger.error(f"SAMMY execution failed for {execution_id}")
+ else:
+ logger.info(f"SAMMY execution completed successfully for {execution_id}")
+
+ return SammyExecutionResult(
+ success=success,
+ execution_id=execution_id,
+ start_time=start_time,
+ end_time=end_time,
+ console_output=console_output,
+ error_message=error_message,
+ )
+
+ except Exception as e:
+ logger.exception(f"Docker execution failed for {execution_id}")
+ raise SammyExecutionError(f"Docker execution failed: {str(e)}")
+
+ def cleanup(self) -> None:
+ """Clean up after execution."""
+ logger.debug("Performing cleanup")
+ self._moved_files = []
+
+ def validate_config(self) -> bool:
+ """Validate the configuration."""
+ return self.config.validate()
+
+
+if __name__ == "__main__":
+ # Setup paths
+ test_data_dir = Path(__file__).parents[4] / "tests/data/ex012"
+ working_dir = Path.home() / "tmp" / "sammy_docker_run"
+ output_dir = working_dir / "output"
+
+ try:
+ # Create and validate config
+ config = DockerSammyConfig(image_name="kedokudo/sammy-docker", working_dir=working_dir, output_dir=output_dir)
+ config.validate()
+
+ # Create files container
+ files = SammyFiles(
+ input_file=test_data_dir / "ex012a.inp",
+ parameter_file=test_data_dir / "ex012a.par",
+ data_file=test_data_dir / "ex012a.dat",
+ )
+
+ # Create and use runner
+ runner = DockerSammyRunner(config)
+
+ # Execute pipeline
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ # Process results
+ if result.success:
+ print(f"SAMMY execution successful (runtime: {result.runtime_seconds:.2f}s)")
+ runner.collect_outputs(result)
+ print(f"Output files available in: {output_dir}")
+ else:
+ print("SAMMY execution failed:")
+ print(result.error_message)
+ print("\nConsole output:")
+ print(result.console_output)
+
+ except Exception as e:
+ print(f"Error running SAMMY: {str(e)}")
+
+ finally:
+ runner.cleanup()
diff --git a/src/pleiades/sammy/backends/local.py b/src/pleiades/sammy/backends/local.py
new file mode 100644
index 0000000..0a3ca97
--- /dev/null
+++ b/src/pleiades/sammy/backends/local.py
@@ -0,0 +1,160 @@
+#!/usr/env/bin python
+"""Local backend implementation for SAMMY execution."""
+
+import logging
+import subprocess
+import textwrap
+from datetime import datetime
+from pathlib import Path
+from typing import List
+from uuid import uuid4
+
+from pleiades.sammy.config import LocalSammyConfig
+from pleiades.sammy.interface import (
+ EnvironmentPreparationError,
+ SammyExecutionError,
+ SammyExecutionResult,
+ SammyFiles,
+ SammyRunner,
+)
+
+logger = logging.getLogger(__name__)
+
+# Known SAMMY output file patterns
+SAMMY_OUTPUT_FILES = {
+ "SAMMY.LPT", # Log file
+ "SAMMIE.ODF", # Output data file
+ "SAMNDF.PAR", # Updated parameter file
+ "SAMRESOLVED.PAR", # Additional parameter file
+}
+
+
+class LocalSammyRunner(SammyRunner):
+ """Implementation of SAMMY runner for local installation."""
+
+ def __init__(self, config: LocalSammyConfig):
+ super().__init__(config)
+ self.config: LocalSammyConfig = config
+ self._moved_files: List[Path] = []
+
+ def prepare_environment(self, files: SammyFiles) -> None:
+ """Prepare environment for local SAMMY execution."""
+ try:
+ logger.debug("Validating input files")
+ files.validate()
+
+ # No need to validate directories as this is done in config validation
+ logger.debug("Environment preparation complete")
+
+ except Exception as e:
+ raise EnvironmentPreparationError(f"Environment preparation failed: {str(e)}")
+
+ def execute_sammy(self, files: SammyFiles) -> SammyExecutionResult:
+ """Execute SAMMY using local installation."""
+ execution_id = str(uuid4())
+ start_time = datetime.now()
+
+ logger.info(f"Starting SAMMY execution {execution_id}")
+ logger.debug(f"Working directory: {self.config.working_dir}")
+
+ sammy_command = textwrap.dedent(f"""\
+ {self.config.sammy_executable} < None:
+ """Clean up after execution."""
+ logger.debug("Performing cleanup for local backend")
+ self._moved_files = []
+
+ def validate_config(self) -> bool:
+ """Validate the configuration."""
+ return self.config.validate()
+
+
+if __name__ == "__main__":
+ from pathlib import Path
+
+ # Setup paths
+ sammy_executable = Path.home() / "code.ornl.gov/SAMMY/build/bin/sammy"
+ test_data_dir = Path(__file__).parents[4] / "tests/data/ex012"
+ working_dir = Path.home() / "tmp/pleiades_test"
+ output_dir = working_dir / "output"
+
+ # Create config
+ config = LocalSammyConfig(sammy_executable=sammy_executable, working_dir=working_dir, output_dir=output_dir)
+ config.validate()
+
+ # Create files container
+ files = SammyFiles(
+ input_file=test_data_dir / "ex012a.inp",
+ parameter_file=test_data_dir / "ex012a.par",
+ data_file=test_data_dir / "ex012a.dat",
+ )
+
+ try:
+ # Create and use runner
+ runner = LocalSammyRunner(config)
+
+ # Prepare environment
+ runner.prepare_environment(files)
+
+ # Execute SAMMY
+ result = runner.execute_sammy(files)
+
+ # Process results
+ if result.success:
+ print(f"SAMMY execution successful (runtime: {result.runtime_seconds:.2f}s)")
+ runner.collect_outputs(result)
+ else:
+ print("SAMMY execution failed:")
+ print(result.error_message)
+ print("\nConsole output:")
+ print(result.console_output)
+
+ except Exception as e:
+ print(f"Error running SAMMY: {str(e)}")
+
+ finally:
+ # Cleanup
+ runner.cleanup()
diff --git a/src/pleiades/sammy/backends/nova_ornl.py b/src/pleiades/sammy/backends/nova_ornl.py
new file mode 100644
index 0000000..e3f8840
--- /dev/null
+++ b/src/pleiades/sammy/backends/nova_ornl.py
@@ -0,0 +1,209 @@
+#!/usr/bin/env python
+"""NOVA web service backend implementation for SAMMY execution."""
+
+import logging
+import os
+import zipfile
+from datetime import datetime
+from pathlib import Path
+from tempfile import TemporaryDirectory
+from typing import Optional
+from uuid import uuid4
+
+from nova.galaxy import Dataset, Nova, NovaConnection, Parameters, Tool
+
+from pleiades.sammy.config import NovaSammyConfig
+from pleiades.sammy.interface import (
+ EnvironmentPreparationError,
+ SammyExecutionError,
+ SammyExecutionResult,
+ SammyFiles,
+ SammyRunner,
+)
+
+logger = logging.getLogger(__name__)
+
+
+class NovaConnectionError(Exception):
+ """Raised when NOVA connection fails."""
+
+ pass
+
+
+class NovaSammyRunner(SammyRunner):
+ """Implementation of SAMMY runner for NOVA web service."""
+
+ def __init__(self, config: NovaSammyConfig):
+ super().__init__(config)
+ self.config: NovaSammyConfig = config
+ self._nova: Optional[Nova] = None
+ self._connection: Optional[NovaConnection] = None
+ self._datastore_name: Optional[str] = None
+ self._temp_dir: Optional[TemporaryDirectory] = None
+
+ def prepare_environment(self, files: SammyFiles) -> None:
+ """
+ Prepare NOVA environment and validate connection.
+
+ Args:
+ files: Container with paths to required input files
+
+ Raises:
+ EnvironmentPreparationError: If preparation fails
+ """
+ try:
+ # Validate input files
+ files.validate()
+
+ # Initialize NOVA connection
+ self._nova = Nova(self.config.url, self.config.api_key)
+
+ # Create temporary directory for downloads
+ self._temp_dir = TemporaryDirectory()
+
+ logger.debug("Testing NOVA connection")
+ with self._nova.connect() as conn:
+ self._connection = conn
+
+ except Exception as e:
+ raise EnvironmentPreparationError(f"NOVA environment preparation failed: {str(e)}")
+
+ def execute_sammy(self, files: SammyFiles) -> SammyExecutionResult:
+ """Execute SAMMY using NOVA web service."""
+ execution_id = str(uuid4())
+ start_time = datetime.now()
+
+ logger.info(f"Starting SAMMY execution {execution_id} via NOVA")
+
+ try:
+ # Create unique datastore
+ self._datastore_name = f"sammy_{execution_id}"
+ datastore = self._connection.create_data_store(self._datastore_name)
+
+ # Prepare tool and datasets
+ tool = Tool(id=self.config.tool_id)
+ params = Parameters()
+
+ # Add input files as datasets
+ params.add_input("inp", Dataset(str(files.input_file)))
+ params.add_input("par", Dataset(str(files.parameter_file)))
+ params.add_input("data", Dataset(str(files.data_file)))
+
+ # Run SAMMY
+ results = tool.run(datastore, params)
+
+ # Get console output
+ console_output = results.get_dataset("sammy_console_output").get_content()
+
+ # Download and extract output files
+ output_zip = Path(self._temp_dir.name) / "sammy_outputs.zip"
+ results.get_collection("sammy_output_files").download(str(output_zip))
+
+ # Extract files to output directory, handling nested structure
+ with zipfile.ZipFile(output_zip) as zf:
+ for zip_info in zf.filelist:
+ # Get just the filename, ignoring directory structure in ZIP
+ filename = Path(zip_info.filename).name
+ # Extract if it's a file (not directory) and starts with SAM
+ if not zip_info.is_dir() and (filename.startswith("SAM") or filename == "SAMMY.LPT"):
+ # Read the file from zip
+ with zf.open(zip_info) as source:
+ # Write to output directory
+ output_file = self.config.output_dir / filename
+ output_file.write_bytes(source.read())
+ logger.debug(f"Extracted {filename} to output directory")
+
+ end_time = datetime.now()
+ success = " Normal finish to SAMMY" in console_output
+ error_message = None if success else "SAMMY execution failed"
+
+ if not success:
+ logger.error(f"SAMMY execution failed for {execution_id}")
+ else:
+ logger.info(f"SAMMY execution completed successfully for {execution_id}")
+
+ return SammyExecutionResult(
+ success=success,
+ execution_id=execution_id,
+ start_time=start_time,
+ end_time=end_time,
+ console_output=console_output,
+ error_message=error_message,
+ )
+
+ except Exception as e:
+ logger.exception(f"NOVA execution failed for {execution_id}")
+ raise SammyExecutionError(f"NOVA execution failed: {str(e)}")
+
+ def cleanup(self) -> None:
+ """Clean up NOVA resources."""
+ logger.debug("Performing NOVA cleanup")
+
+ try:
+ # Remove temporary directory if it exists
+ if self._temp_dir is not None:
+ self._temp_dir.cleanup()
+ self._temp_dir = None
+
+ # No need to explicitly close connection as it's handled by context manager
+ self._connection = None
+ self._nova = None
+
+ except Exception as e:
+ logger.error(f"Error during cleanup: {str(e)}")
+
+ def validate_config(self):
+ """Validate the configuration."""
+ return self.config.validate()
+
+
+if __name__ == "__main__":
+ # Setup paths
+ test_data_dir = Path(__file__).parents[4] / "tests/data/ex012"
+ working_dir = Path.home() / "tmp" / "sammy_nova_run"
+ output_dir = working_dir / "output"
+
+ try:
+ # Get NOVA credentials from environment
+ nova_url = os.environ.get("NOVA_URL")
+ nova_api_key = os.environ.get("NOVA_API_KEY")
+
+ if not nova_url or not nova_api_key:
+ raise ValueError("NOVA_URL and NOVA_API_KEY environment variables must be set")
+
+ # Create and validate config
+ config = NovaSammyConfig(url=nova_url, api_key=nova_api_key, working_dir=working_dir, output_dir=output_dir)
+ config.validate()
+
+ # Create files container
+ files = SammyFiles(
+ input_file=test_data_dir / "ex012a.inp",
+ parameter_file=test_data_dir / "ex012a.par",
+ data_file=test_data_dir / "ex012a.dat",
+ )
+
+ # Create and use runner
+ runner = NovaSammyRunner(config)
+
+ # Execute pipeline
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ # Process results
+ if result.success:
+ print(f"SAMMY execution successful (runtime: {result.runtime_seconds:.2f}s)")
+ # NOTE: DO NOT collect here as nova runner packages all output files on the server
+ # and pleiades download the zip archive, extract and move to output directory.
+ print(f"Output files available in: {output_dir}")
+ else:
+ print("SAMMY execution failed:")
+ print(result.error_message)
+ print("\nConsole output:")
+ print(result.console_output)
+
+ except Exception as e:
+ print(f"Error running SAMMY: {str(e)}")
+
+ finally:
+ if "runner" in locals():
+ runner.cleanup()
diff --git a/src/pleiades/sammy/config.py b/src/pleiades/sammy/config.py
new file mode 100644
index 0000000..4f74fce
--- /dev/null
+++ b/src/pleiades/sammy/config.py
@@ -0,0 +1,123 @@
+#!/usr/env/bin python
+"""
+Configuration management for SAMMY execution backends.
+
+This module provides concrete configuration classes for each SAMMY backend type,
+inheriting from the base configuration defined in the interface module.
+"""
+
+import shutil
+from dataclasses import dataclass, field
+from pathlib import Path
+from typing import Dict
+
+from pleiades.sammy.interface import BaseSammyConfig, ConfigurationError
+
+
+@dataclass
+class LocalSammyConfig(BaseSammyConfig):
+ """Configuration for local SAMMY installation."""
+
+ sammy_executable: Path
+ shell_path: Path = Path("/bin/bash")
+ env_vars: Dict[str, str] = field(default_factory=dict)
+
+ def validate(self) -> bool:
+ """Validate local SAMMY configuration."""
+ # Validate base configuration first
+ super().validate()
+
+ # Validate SAMMY executable exists and is executable
+ sammy_path = shutil.which(str(self.sammy_executable))
+ if not sammy_path:
+ raise ConfigurationError(f"SAMMY executable not found: {self.sammy_executable}")
+ self.sammy_executable = Path(sammy_path)
+
+ # Validate shell exists
+ if not self.shell_path.exists():
+ raise ConfigurationError(f"Shell not found: {self.shell_path}")
+
+ return True
+
+
+@dataclass
+class DockerSammyConfig(BaseSammyConfig):
+ """Configuration for Docker-based SAMMY execution."""
+
+ image_name: str
+ container_working_dir: Path = Path("/sammy/work")
+ container_data_dir: Path = Path("/sammy/data")
+
+ def validate(self) -> bool:
+ """
+ Validate Docker SAMMY configuration.
+
+ Returns:
+ bool: True if configuration is valid
+
+ Raises:
+ ConfigurationError: If configuration is invalid
+ """
+ # First validate base configuration
+ super().validate()
+
+ # Validate image name
+ if not self.image_name:
+ raise ConfigurationError("Docker image name cannot be empty")
+
+ # Validate container paths are absolute
+ if not self.container_working_dir.is_absolute():
+ raise ConfigurationError("Container working directory must be absolute path")
+ if not self.container_data_dir.is_absolute():
+ raise ConfigurationError("Container data directory must be absolute path")
+
+ # Validate container paths are different
+ if self.container_working_dir == self.container_data_dir:
+ raise ConfigurationError("Container working and data directories must be different")
+
+ return True
+
+
+@dataclass
+class NovaSammyConfig(BaseSammyConfig):
+ """Configuration for NOVA web service SAMMY execution."""
+
+ url: str
+ api_key: str
+ tool_id: str = "neutrons_imaging_sammy"
+ timeout: int = 3600 # Default 1 hour timeout in seconds
+
+ def validate(self) -> bool:
+ """
+ Validate NOVA SAMMY configuration.
+
+ Returns:
+ bool: True if configuration is valid
+
+ Raises:
+ ConfigurationError: If configuration is invalid
+ """
+ # Validate base configuration (directories)
+ super().validate()
+
+ # Validate URL
+ if not self.url:
+ raise ConfigurationError("NOVA service URL cannot be empty")
+
+ # Simple URL format check
+ if not self.url.startswith("https://"):
+ raise ConfigurationError("Invalid URL format - must start with https://")
+
+ # Validate API key
+ if not self.api_key:
+ raise ConfigurationError("API key cannot be empty")
+
+ # Validate tool ID
+ if not self.tool_id:
+ raise ConfigurationError("Tool ID cannot be empty")
+
+ # Validate timeout
+ if self.timeout <= 0:
+ raise ConfigurationError(f"Invalid timeout value: {self.timeout}")
+
+ return True
diff --git a/src/pleiades/sammy/factory.py b/src/pleiades/sammy/factory.py
new file mode 100644
index 0000000..f4ba5df
--- /dev/null
+++ b/src/pleiades/sammy/factory.py
@@ -0,0 +1,488 @@
+#!/usr/bin/env python
+"""Auto setup sammy runner with factory"""
+
+import logging
+import os
+import re
+import shutil
+import subprocess
+from enum import Enum
+from pathlib import Path
+from typing import Dict, Optional, Union
+
+import yaml
+
+from pleiades.sammy.backends.docker import DockerSammyRunner
+from pleiades.sammy.backends.local import LocalSammyRunner
+from pleiades.sammy.backends.nova_ornl import NovaSammyRunner
+from pleiades.sammy.config import DockerSammyConfig, LocalSammyConfig, NovaSammyConfig
+from pleiades.sammy.interface import SammyFiles, SammyRunner
+
+logger = logging.getLogger(__name__)
+
+
+class BackendType(Enum):
+ """Supported SAMMY backend types."""
+
+ LOCAL = "local"
+ DOCKER = "docker"
+ NOVA = "nova"
+
+
+class FactoryError(Exception):
+ """Base exception for factory errors."""
+
+ pass
+
+
+class BackendNotAvailableError(FactoryError):
+ """Requested backend not available."""
+
+ pass
+
+
+class ConfigurationError(FactoryError):
+ """Configuration error."""
+
+ pass
+
+
+class SammyFactory:
+ """Factory for creating and managing SAMMY runners."""
+
+ @staticmethod
+ def list_available_backends() -> Dict[BackendType, bool]:
+ """
+ Check which backends are available in the current environment.
+
+ Returns:
+ Dict mapping backend types to their availability status
+
+ Example:
+ >>> SammyFactory.list_available_backends()
+ {
+ BackendType.LOCAL: True,
+ BackendType.DOCKER: True,
+ BackendType.NOVA: False
+ }
+ """
+ available = {}
+
+ # Check Local backend
+ try:
+ sammy_path = shutil.which("sammy")
+ available[BackendType.LOCAL] = sammy_path is not None
+ if sammy_path:
+ logger.debug(f"Local SAMMY found at: {sammy_path}")
+ except Exception as e:
+ logger.debug(f"Error checking local backend: {str(e)}")
+ available[BackendType.LOCAL] = False
+
+ # Check Docker backend
+ try:
+ docker_available = shutil.which("docker") is not None
+ if docker_available:
+ # Check if we can run docker
+ result = subprocess.run(["docker", "info"], capture_output=True, text=True)
+ docker_available = result.returncode == 0
+ available[BackendType.DOCKER] = docker_available
+ if docker_available:
+ logger.debug("Docker backend available")
+ except Exception as e:
+ logger.debug(f"Error checking docker backend: {str(e)}")
+ available[BackendType.DOCKER] = False
+
+ # Check NOVA backend
+ try:
+ nova_available = all(k in os.environ for k in ["NOVA_URL", "NOVA_API_KEY"])
+ available[BackendType.NOVA] = nova_available
+ if nova_available:
+ logger.debug("NOVA credentials found")
+ except Exception as e:
+ logger.debug(f"Error checking NOVA backend: {str(e)}")
+ available[BackendType.NOVA] = False
+
+ return available
+
+ @classmethod
+ def create_runner(
+ cls, backend_type: str, working_dir: Path, output_dir: Optional[Path] = None, **kwargs
+ ) -> SammyRunner:
+ """
+ Create a SAMMY runner with the specified backend and configuration.
+
+ Args:
+ backend_type: Type of backend ("local", "docker", or "nova")
+ working_dir: Working directory for SAMMY execution
+ output_dir: Output directory for SAMMY results (defaults to working_dir/output)
+ **kwargs: Backend-specific configuration options:
+ Local backend:
+ sammy_executable: Path to SAMMY executable
+ shell_path: Path to shell
+ Docker backend:
+ image_name: Docker image name
+ container_working_dir: Working directory in container
+ container_data_dir: Data directory in container
+ NOVA backend:
+ url: NOVA service URL
+ api_key: NOVA API key
+ tool_id: SAMMY tool ID
+ timeout: Request timeout in seconds
+
+ Returns:
+ Configured SammyRunner instance
+
+ Raises:
+ BackendNotAvailableError: If requested backend is not available
+ ConfigurationError: If configuration is invalid
+ """
+ try:
+ # Convert string to enum
+ try:
+ backend = BackendType(backend_type.lower())
+ except ValueError:
+ raise ConfigurationError(f"Invalid backend type: {backend_type}")
+
+ # Check backend availability
+ available_backends = cls.list_available_backends()
+ if not available_backends[backend]:
+ raise BackendNotAvailableError(f"Backend {backend.value} is not available")
+
+ # Set default output directory if not specified
+ if output_dir is None:
+ output_dir = working_dir / "output"
+
+ # Convert to Path objects
+ working_dir = Path(working_dir)
+ output_dir = Path(output_dir)
+
+ # Create appropriate configuration and runner based on backend
+ if backend == BackendType.LOCAL:
+ config = LocalSammyConfig(
+ working_dir=working_dir,
+ output_dir=output_dir,
+ sammy_executable=kwargs.get("sammy_executable", "sammy"),
+ shell_path=kwargs.get("shell_path", Path("/bin/bash")),
+ )
+ runner = LocalSammyRunner(config)
+
+ elif backend == BackendType.DOCKER:
+ config = DockerSammyConfig(
+ working_dir=working_dir,
+ output_dir=output_dir,
+ image_name=kwargs.get("image_name", "kedokudo/sammy-docker"),
+ container_working_dir=Path(kwargs.get("container_working_dir", "/sammy/work")),
+ container_data_dir=Path(kwargs.get("container_data_dir", "/sammy/data")),
+ )
+ runner = DockerSammyRunner(config)
+
+ elif backend == BackendType.NOVA:
+ # For NOVA, try environment variables if not in kwargs
+ url = kwargs.get("url") or os.environ.get("NOVA_URL")
+ api_key = kwargs.get("api_key") or os.environ.get("NOVA_API_KEY")
+ if not url or not api_key:
+ raise ConfigurationError("NOVA URL and API key must be provided")
+
+ config = NovaSammyConfig(
+ working_dir=working_dir,
+ output_dir=output_dir,
+ url=url,
+ api_key=api_key,
+ tool_id=kwargs.get("tool_id", "neutrons_imaging_sammy"),
+ timeout=kwargs.get("timeout", 3600),
+ )
+ runner = NovaSammyRunner(config)
+
+ # Validate configuration
+ config.validate()
+ return runner
+
+ except Exception as e:
+ if not isinstance(e, (BackendNotAvailableError, ConfigurationError)):
+ logger.exception("Unexpected error creating runner")
+ raise ConfigurationError(f"Failed to create runner: {str(e)}")
+ raise
+
+ @classmethod
+ def from_config(cls, config_path: Union[str, Path]) -> SammyRunner:
+ """
+ Create a SAMMY runner from a configuration file.
+
+ Args:
+ config_path: Path to YAML configuration file
+
+ Returns:
+ Configured SammyRunner instance
+
+ Raises:
+ ConfigurationError: If configuration file is invalid or missing
+ BackendNotAvailableError: If requested backend is not available
+
+ Example config file:
+ backend: local
+ working_dir: /path/to/work
+ output_dir: /path/to/output
+
+ local:
+ sammy_executable: /path/to/sammy
+ shell_path: /bin/bash
+
+ docker:
+ image_name: kedokudo/sammy-docker
+ container_working_dir: /sammy/work
+ container_data_dir: /sammy/data
+
+ nova:
+ url: ${NOVA_URL}
+ api_key: ${NOVA_API_KEY}
+ tool_id: neutrons_imaging_sammy
+ timeout: 3600
+ """
+ try:
+ # Load and parse configuration file
+ config_path = Path(config_path)
+ if not config_path.exists():
+ raise ConfigurationError(f"Configuration file not found: {config_path}")
+
+ with open(config_path) as f:
+ try:
+ config = yaml.safe_load(f)
+ except yaml.YAMLError as e:
+ raise ConfigurationError(f"Invalid YAML format: {str(e)}")
+
+ # Validate basic structure
+ if not isinstance(config, dict):
+ raise ConfigurationError("Configuration must be a dictionary")
+
+ required_fields = {"backend", "working_dir"}
+ missing_fields = required_fields - set(config.keys())
+ if missing_fields:
+ raise ConfigurationError(f"Missing required fields: {missing_fields}")
+
+ # Handle environment variable expansion
+ def expand_env_vars(value: str) -> str:
+ """Expand environment variables in string values."""
+ if isinstance(value, str) and "${" in value:
+ pattern = r"\${([^}]+)}"
+ matches = re.finditer(pattern, value)
+ for match in matches:
+ env_var = match.group(1)
+ env_value = os.environ.get(env_var)
+ if env_value is None:
+ raise ConfigurationError(f"Environment variable not found: {env_var}")
+ value = value.replace(f"${{{env_var}}}", env_value)
+ return value
+
+ # Process configuration recursively
+ def process_config(cfg):
+ """Recursively process configuration dictionary."""
+ if isinstance(cfg, dict):
+ return {k: process_config(v) for k, v in cfg.items()}
+ elif isinstance(cfg, list):
+ return [process_config(v) for v in cfg]
+ elif isinstance(cfg, str):
+ return expand_env_vars(cfg)
+ return cfg
+
+ config = process_config(config)
+
+ # Convert paths
+ working_dir = Path(config["working_dir"])
+ output_dir = Path(config.get("output_dir", working_dir / "output"))
+
+ # Get backend-specific configuration
+ backend_type = config["backend"].lower()
+ backend_config = config.get(backend_type, {})
+
+ # Create runner using create_runner
+ return cls.create_runner(
+ backend_type=backend_type, working_dir=working_dir, output_dir=output_dir, **backend_config
+ )
+
+ except Exception as e:
+ if not isinstance(e, (ConfigurationError, BackendNotAvailableError)):
+ logger.exception("Unexpected error loading configuration")
+ raise ConfigurationError(f"Failed to load configuration: {str(e)}")
+ raise
+
+ @classmethod
+ def auto_select(
+ cls, working_dir: Path, output_dir: Optional[Path] = None, preferred_backend: Optional[str] = None, **kwargs
+ ) -> SammyRunner:
+ """
+ Auto-select and configure the best available SAMMY backend.
+
+ The selection priority (unless overridden by preferred_backend):
+ 1. Local installation (fastest, simplest)
+ 2. Docker container (portable, isolated)
+ 3. NOVA web service (no local installation needed)
+
+ Args:
+ working_dir: Working directory for SAMMY execution
+ output_dir: Optional output directory (defaults to working_dir/output)
+ preferred_backend: Optional preferred backend type ("local", "docker", "nova")
+ **kwargs: Backend-specific configuration options
+
+ Returns:
+ Configured SammyRunner instance
+
+ Raises:
+ BackendNotAvailableError: If no suitable backend is available
+ ConfigurationError: If configuration is invalid
+
+ Examples:
+ >>> runner = SammyFactory.auto_select(
+ ... working_dir="/path/to/work",
+ ... preferred_backend="docker",
+ ... image_name="custom/sammy:latest"
+ ... )
+ """
+ # Check available backends
+ available = cls.list_available_backends()
+ logger.debug(f"Available backends: {[b.value for b, v in available.items() if v]}")
+
+ # If preferred backend specified, try it first
+ if preferred_backend:
+ try:
+ preferred = BackendType(preferred_backend.lower())
+ if available[preferred]:
+ logger.info(f"Using preferred backend: {preferred.value}")
+ return cls.create_runner(
+ backend_type=preferred.value, working_dir=working_dir, output_dir=output_dir, **kwargs
+ )
+ else:
+ logger.warning(f"Preferred backend {preferred.value} not available, " "trying alternatives")
+ except ValueError:
+ raise ConfigurationError(f"Invalid preferred backend: {preferred_backend}")
+
+ # Try backends in priority order
+ backend_priority = [
+ BackendType.LOCAL, # Fastest, simplest
+ BackendType.DOCKER, # Portable, isolated
+ BackendType.NOVA, # No local installation
+ ]
+
+ errors = []
+ for backend in backend_priority:
+ if available[backend]:
+ try:
+ logger.info(f"Attempting to use {backend.value} backend")
+ return cls.create_runner(
+ backend_type=backend.value, working_dir=working_dir, output_dir=output_dir, **kwargs
+ )
+ except Exception as e:
+ logger.warning(f"Failed to configure {backend.value} backend: {str(e)}")
+ errors.append(f"{backend.value}: {str(e)}")
+ continue
+
+ # If we get here, no backend was successfully configured
+ error_details = "\n".join(errors)
+ raise BackendNotAvailableError(f"No suitable backend available. Errors encountered:\n{error_details}")
+
+
+if __name__ == "__main__":
+ import sys
+
+ # Setup logging
+ logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
+
+ # Example paths
+ test_data_dir = Path(__file__).parents[3] / "tests/data/ex012"
+ working_dir = Path.home() / "tmp" / "sammy_factory_test"
+ output_dir = working_dir / "output"
+
+ # Example configuration file
+ example_config = """
+backend: docker
+working_dir: {working_dir}
+output_dir: {output_dir}
+
+local:
+ sammy_executable: sammy
+ shell_path: /bin/bash
+
+docker:
+ image_name: kedokudo/sammy-docker
+ container_working_dir: /sammy/work
+ container_data_dir: /sammy/data
+
+nova:
+ url: ${{NOVA_URL}}
+ api_key: ${{NOVA_API_KEY}}
+ tool_id: neutrons_imaging_sammy
+ timeout: 3600
+"""
+
+ try:
+ print("\n=== SAMMY Factory Examples ===\n")
+
+ # List available backends
+ print("Checking available backends...")
+ available = SammyFactory.list_available_backends()
+ print("Available backends:")
+ for backend, is_available in available.items():
+ print(f" {backend.value}: {'✓' if is_available else '✗'}")
+
+ print("\n1. Create runner directly...")
+ runner1 = SammyFactory.create_runner(backend_type="local", working_dir=working_dir, output_dir=output_dir)
+ print(f"Created runner: {type(runner1).__name__}")
+
+ print("\n2. Create runner from config file...")
+ # Write example config
+ config_file = working_dir / "sammy_config.yaml"
+ working_dir.mkdir(parents=True, exist_ok=True)
+ config_file.write_text(example_config.format(working_dir=working_dir, output_dir=output_dir))
+ runner2 = SammyFactory.from_config(config_file)
+ print(f"Created runner: {type(runner2).__name__}")
+
+ print("\n3. Auto-select backend...")
+ runner3 = SammyFactory.auto_select(working_dir=working_dir, output_dir=output_dir)
+ print(f"Selected backend: {type(runner3).__name__}")
+
+ print("\n4. Test complete runner workflow...")
+ # Create files container
+ files = SammyFiles(
+ input_file=test_data_dir / "ex012a.inp",
+ parameter_file=test_data_dir / "ex012a.par",
+ data_file=test_data_dir / "ex012a.dat",
+ )
+
+ # Execute SAMMY using auto-selected backend
+ runner = SammyFactory.auto_select(
+ working_dir=working_dir,
+ output_dir=output_dir,
+ preferred_backend="local", # Try local first
+ )
+
+ print(f"Using runner: {type(runner).__name__}")
+ print(f"Working directory: {working_dir}")
+ print(f"Output directory: {output_dir}")
+
+ # Execute pipeline
+ print("\nPreparing environment...")
+ runner.prepare_environment(files)
+
+ print("Executing SAMMY...")
+ result = runner.execute_sammy(files)
+
+ # Process results
+ if result.success:
+ print(f"\nSAMMY execution successful (runtime: {result.runtime_seconds:.2f}s)")
+ runner.collect_outputs(result)
+ print(f"Output files available in: {output_dir}")
+ else:
+ print("\nSAMMY execution failed:")
+ print(result.error_message)
+ print("\nConsole output:")
+ print(result.console_output)
+
+ except Exception as e:
+ print(f"\nError: {str(e)}", file=sys.stderr)
+ logging.exception("Example execution failed")
+ sys.exit(1)
+
+ finally:
+ if "runner" in locals():
+ runner.cleanup()
+
+ print("\nExamples completed successfully")
diff --git a/src/pleiades/sammy/interface.py b/src/pleiades/sammy/interface.py
new file mode 100644
index 0000000..211ca87
--- /dev/null
+++ b/src/pleiades/sammy/interface.py
@@ -0,0 +1,297 @@
+#!/usr/env/bin python
+"""
+Interface definitions for SAMMY execution system.
+
+This module defines the core interfaces and data structures used across
+all SAMMY backend implementations.
+"""
+
+import logging
+import os
+from abc import ABC, abstractmethod
+from dataclasses import dataclass
+from datetime import datetime
+from enum import Enum, auto
+from pathlib import Path
+from typing import Optional
+
+logger = logging.getLogger(__name__)
+
+SAMMY_OUTPUT_FILES = {
+ "SAMMY.LPT", # Log file
+ "SAMMIE.ODF", # Output data file
+ "SAMNDF.PAR", # Updated parameter file
+ "SAMRESOLVED.PAR", # Additional parameter file
+}
+
+
+class SammyBackendType(Enum):
+ """Enumeration of available SAMMY backend types."""
+
+ LOCAL = auto()
+ DOCKER = auto()
+ NOVA = auto()
+
+
+@dataclass
+class SammyFiles:
+ """Container for SAMMY input files."""
+
+ input_file: Path
+ parameter_file: Path
+ data_file: Path
+
+ def validate(self) -> None:
+ """
+ Validate that all required input files exist.
+
+ Raises:
+ FileNotFoundError: If any required file is missing
+ """
+ for field_name, file_path in self.__dict__.items():
+ if not file_path.exists():
+ raise FileNotFoundError(f"{field_name.replace('_', ' ').title()} not found: {file_path}")
+ if not file_path.is_file():
+ raise FileNotFoundError(f"{field_name.replace('_', ' ').title()} is not a file: {file_path}")
+
+
+@dataclass
+class SammyExecutionResult:
+ """Detailed results of a SAMMY execution."""
+
+ success: bool
+ execution_id: str # Unique identifier for this run
+ start_time: datetime
+ end_time: datetime
+ console_output: str
+ error_message: Optional[str] = None
+
+ @property
+ def runtime_seconds(self) -> float:
+ """Calculate execution time in seconds."""
+ return (self.end_time - self.start_time).total_seconds()
+
+
+@dataclass
+class BaseSammyConfig(ABC):
+ """Base configuration for all SAMMY backends."""
+
+ working_dir: Path # Directory for SAMMY execution
+ output_dir: Path # Directory for SAMMY outputs
+
+ def prepare_directories(self) -> None:
+ """
+ Create and prepare required directories.
+
+ Raises:
+ ConfigurationError: If directory creation fails
+ """
+ try:
+ # Create working directory if it doesn't exist
+ self.working_dir.mkdir(parents=True, exist_ok=True)
+
+ # Create output directory if it doesn't exist
+ self.output_dir.mkdir(parents=True, exist_ok=True)
+
+ except Exception as e:
+ raise ConfigurationError(f"Failed to create directories: {str(e)}")
+
+ def validate(self) -> bool:
+ """
+ Validate the configuration.
+
+ Returns:
+ bool: True if configuration is valid
+
+ Raises:
+ ConfigurationError: If configuration is invalid
+ """
+ # Create directories first
+ self.prepare_directories()
+
+ # Validate working directory is writable
+ if not os.access(self.working_dir, os.W_OK):
+ raise ConfigurationError(f"Working directory not writable: {self.working_dir}")
+
+ # Validate output directory is writable
+ if not os.access(self.output_dir, os.W_OK):
+ raise ConfigurationError(f"Output directory not writable: {self.output_dir}")
+
+ return True
+
+
+class SammyRunner(ABC):
+ """Abstract base class for SAMMY execution backends."""
+
+ def __init__(self, config: BaseSammyConfig):
+ self.config = config
+ self.logger = logging.getLogger(f"{__name__}.{self.__class__.__name__}")
+
+ @abstractmethod
+ def prepare_environment(self, files: SammyFiles) -> None:
+ """
+ Prepare the execution environment.
+
+ Args:
+ files: Container with file information
+
+ Raises:
+ EnvironmentPreparationError: If preparation fails
+ """
+ raise NotImplementedError
+
+ @abstractmethod
+ def execute_sammy(self, files: SammyFiles) -> SammyExecutionResult:
+ """
+ Execute SAMMY with prepared files.
+
+ Args:
+ files: Container with validated and prepared files
+
+ Returns:
+ Execution results including status and outputs
+
+ Raises:
+ SammyExecutionError: If execution fails
+ """
+ raise NotImplementedError
+
+ @abstractmethod
+ def cleanup(self, files: SammyFiles) -> None:
+ """
+ Clean up resources after execution.
+
+ Args:
+ files: Container with file information
+
+ Raises:
+ CleanupError: If cleanup fails
+ """
+ raise NotImplementedError
+
+ async def __aenter__(self) -> "SammyRunner":
+ """Allow usage as async context manager."""
+ return self
+
+ async def __aexit__(self, exc_type, exc_val, exc_tb) -> None:
+ """Ensure cleanup on context exit."""
+ if hasattr(self, "files"):
+ await self.cleanup(self.files)
+
+ @abstractmethod
+ def validate_config(self) -> bool:
+ """
+ Validate backend configuration.
+
+ Returns:
+ bool: True if configuration is valid
+
+ Raises:
+ ConfigurationError: If configuration is invalid
+ """
+ raise NotImplementedError
+
+ def collect_outputs(self, result: SammyExecutionResult) -> None:
+ """
+ Collect and validate output files after execution.
+
+ Args:
+ result: Execution result containing status information
+
+ Raises:
+ OutputCollectionError: If output collection fails
+ """
+ collection_start = datetime.now()
+ logger.info(f"Collecting outputs for execution {result.execution_id}")
+
+ try:
+ self._moved_files = []
+ found_outputs = set()
+
+ # First check for known output files
+ for known_file in SAMMY_OUTPUT_FILES:
+ output_file = self.config.working_dir / known_file
+ if output_file.is_file():
+ found_outputs.add(output_file)
+ logger.debug(f"Found known output file: {known_file}")
+
+ # Then look for any additional SAM* files
+ for output_file in self.config.working_dir.glob("SAM*"):
+ if output_file.is_file() and output_file not in found_outputs:
+ found_outputs.add(output_file)
+ logger.debug(f"Found additional output file: {output_file.name}")
+
+ if not found_outputs:
+ logger.warning("No SAMMY output files found")
+ if result.success:
+ logger.error("SAMMY reported success but produced no output files")
+ return
+
+ # Move all found outputs
+ for output_file in found_outputs:
+ dest = self.config.output_dir / output_file.name
+ try:
+ if dest.exists():
+ logger.debug(f"Removing existing output file: {dest}")
+ dest.unlink()
+ output_file.rename(dest)
+ self._moved_files.append(dest)
+ logger.debug(f"Moved {output_file} to {dest}")
+ except OSError as e:
+ self._rollback_moves()
+ raise OutputCollectionError(f"Failed to move output file {output_file}: {str(e)}")
+
+ logger.info(
+ f"Successfully collected {len(self._moved_files)} output files in "
+ f"{(datetime.now() - collection_start).total_seconds():.2f} seconds"
+ )
+
+ except Exception as e:
+ self._rollback_moves()
+ raise OutputCollectionError(f"Output collection failed: {str(e)}")
+
+ def _rollback_moves(self) -> None:
+ """Rollback any moved files in case of error."""
+ for moved_file in self._moved_files:
+ try:
+ original = self.config.working_dir / moved_file.name
+ moved_file.rename(original)
+ except Exception as e:
+ logger.error(f"Failed to rollback move for {moved_file}: {str(e)}")
+
+
+# Custom exceptions
+class SammyError(Exception):
+ """Base exception for SAMMY-related errors."""
+
+ pass
+
+
+class EnvironmentPreparationError(SammyError):
+ """Raised when environment preparation fails."""
+
+ pass
+
+
+class SammyExecutionError(SammyError):
+ """Raised when SAMMY execution fails."""
+
+ pass
+
+
+class OutputCollectionError(SammyError):
+ """Raised when output collection fails."""
+
+ pass
+
+
+class ConfigurationError(SammyError):
+ """Raised when configuration is invalid."""
+
+ pass
+
+
+class CleanupError(SammyError):
+ """Raised when cleanup fails."""
+
+ pass
diff --git a/src/pleiades/sammy/parameters/__init__.py b/src/pleiades/sammy/parameters/__init__.py
new file mode 100644
index 0000000..098e457
--- /dev/null
+++ b/src/pleiades/sammy/parameters/__init__.py
@@ -0,0 +1,5 @@
+from pleiades.sammy.parameters.broadening import BroadeningParameterCard # noqa: F401
+from pleiades.sammy.parameters.external_r import ExternalREntry # noqa: F401
+from pleiades.sammy.parameters.normalization import NormalizationBackgroundCard # noqa: F401
+from pleiades.sammy.parameters.resonance import ResonanceEntry # noqa: F401
+from pleiades.sammy.parameters.unused_var import UnusedCorrelatedCard # noqa: F401
diff --git a/src/pleiades/sammy/parameters/broadening.py b/src/pleiades/sammy/parameters/broadening.py
new file mode 100644
index 0000000..ca893df
--- /dev/null
+++ b/src/pleiades/sammy/parameters/broadening.py
@@ -0,0 +1,402 @@
+#!/usr/bin/env python
+"""Data class for card 04::broadening parameters."""
+
+import logging
+from typing import List, Optional
+
+from pydantic import BaseModel, Field, model_validator
+
+from pleiades.sammy.parameters.helper import VaryFlag, format_float, format_vary, safe_parse
+
+# Format definitions for fixed-width fields
+# Each numeric field follows a 9+1 pattern:
+# - 9 characters for the actual data (e.g. "1.2340E+00")
+# - 1 character for space separator
+# This maintains human readability while ensuring fixed-width alignment
+
+FORMAT_MAIN = {
+ "crfn": slice(0, 10), # Matching radius (F)
+ "temp": slice(10, 20), # Effective temperature (K)
+ "thick": slice(20, 30), # Sample thickness (atoms/barn)
+ "deltal": slice(30, 40), # Spread in flight-path length (m)
+ "deltag": slice(40, 50), # Gaussian resolution width (μs)
+ "deltae": slice(50, 60), # e-folding width of exponential resolution (μs)
+ "flag_crfn": slice(60, 62), # Flag for CRFN
+ "flag_temp": slice(62, 64), # Flag for TEMP
+ "flag_thick": slice(64, 66), # Flag for THICK
+ "flag_deltal": slice(66, 68), # Flag for DELTAL
+ "flag_deltag": slice(68, 70), # Flag for DELTAG
+ "flag_deltae": slice(70, 72), # Flag for DELTAE
+}
+
+FORMAT_UNCERTAINTY = {
+ "d_crfn": slice(0, 10), # Uncertainty on CRFN
+ "d_temp": slice(10, 20), # Uncertainty on TEMP
+ "d_thick": slice(20, 30), # Uncertainty on THICK
+ "d_deltal": slice(30, 40), # Uncertainty on DELTAL
+ "d_deltag": slice(40, 50), # Uncertainty on DELTAG
+ "d_deltae": slice(50, 60), # Uncertainty on DELTAE
+}
+
+FORMAT_GAUSSIAN = {
+ "deltc1": slice(0, 10), # Width of Gaussian, constant in energy (eV)
+ "deltc2": slice(10, 20), # Width of Gaussian, linear in energy (unitless)
+ "flag_deltc1": slice(60, 62), # Flag for DELTC1
+ "flag_deltc2": slice(62, 64), # Flag for DELTC2
+}
+
+FORMAT_GAUSSIAN_UNC = {
+ "d_deltc1": slice(0, 10), # Uncertainty on DELTC1
+ "d_deltc2": slice(10, 20), # Uncertainty on DELTC2
+}
+
+CARD_4_HEADER = "BROADening parameters may be varied"
+
+
+class BroadeningParameters(BaseModel):
+ """Container for a single set of broadening parameters.
+
+ Contains all parameters from a single card set 4 entry including:
+ - Main parameters (CRFN, TEMP, etc.)
+ - Their uncertainties
+ - Additional Gaussian parameters
+ - Flags indicating whether each parameter should be varied
+
+ Note on fixed-width format:
+ Each numeric field in the file uses a 10-column width with a 9+1 pattern:
+ - 9 characters for the actual numeric data (e.g. "1.2340E+00")
+ - 1 character for space separator
+ This format ensures human readability while maintaining proper fixed-width alignment.
+ """
+
+ # Main parameters
+ crfn: float = Field(description="Matching radius (F)")
+ temp: float = Field(description="Effective temperature (K)")
+ thick: float = Field(description="Sample thickness (atoms/barn)")
+ deltal: float = Field(description="Spread in flight-path length (m)")
+ deltag: float = Field(description="Gaussian resolution width (μs)")
+ deltae: float = Field(description="e-folding width of exponential resolution (μs)")
+
+ # Optional uncertainties for main parameters
+ d_crfn: Optional[float] = Field(None, description="Uncertainty on CRFN")
+ d_temp: Optional[float] = Field(None, description="Uncertainty on TEMP")
+ d_thick: Optional[float] = Field(None, description="Uncertainty on THICK")
+ d_deltal: Optional[float] = Field(None, description="Uncertainty on DELTAL")
+ d_deltag: Optional[float] = Field(None, description="Uncertainty on DELTAG")
+ d_deltae: Optional[float] = Field(None, description="Uncertainty on DELTAE")
+
+ # Optional additional Gaussian parameters
+ deltc1: Optional[float] = Field(None, description="Width of Gaussian, constant in energy (eV)")
+ deltc2: Optional[float] = Field(None, description="Width of Gaussian, linear in energy (unitless)")
+ d_deltc1: Optional[float] = Field(None, description="Uncertainty on DELTC1")
+ d_deltc2: Optional[float] = Field(None, description="Uncertainty on DELTC2")
+
+ # Vary flags for all parameters
+ flag_crfn: VaryFlag = Field(default=VaryFlag.NO)
+ flag_temp: VaryFlag = Field(default=VaryFlag.NO)
+ flag_thick: VaryFlag = Field(default=VaryFlag.NO)
+ flag_deltal: VaryFlag = Field(default=VaryFlag.NO)
+ flag_deltag: VaryFlag = Field(default=VaryFlag.NO)
+ flag_deltae: VaryFlag = Field(default=VaryFlag.NO)
+ flag_deltc1: Optional[VaryFlag] = Field(None)
+ flag_deltc2: Optional[VaryFlag] = Field(None)
+
+ @model_validator(mode="after")
+ def validate_gaussian_parameters(self) -> "BroadeningParameters":
+ """Validate that if any Gaussian parameter is present, both are present."""
+ has_deltc1 = self.deltc1 is not None
+ has_deltc2 = self.deltc2 is not None
+ if has_deltc1 != has_deltc2:
+ raise ValueError("Both DELTC1 and DELTC2 must be present if either is present")
+ if has_deltc1:
+ if self.flag_deltc1 is None or self.flag_deltc2 is None:
+ raise ValueError("Flags must be specified for DELTC1 and DELTC2 if present")
+ return self
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "BroadeningParameters":
+ """Parse broadening parameters from a list of fixed-width format lines.
+
+ Args:
+ lines: List of input lines (excluding header)
+
+ Returns:
+ BroadeningParameters: Parsed parameters
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines or not lines[0].strip():
+ raise ValueError("No valid parameter line provided")
+
+ # Make sure first line is long enough
+ main_line = f"{lines[0]:<72}"
+
+ params = {}
+
+ # Parse main parameters
+ for field in ["crfn", "temp", "thick", "deltal", "deltag", "deltae"]:
+ value = safe_parse(main_line[FORMAT_MAIN[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse vary flags
+ for field in ["flag_crfn", "flag_temp", "flag_thick", "flag_deltal", "flag_deltag", "flag_deltae"]:
+ value = main_line[FORMAT_MAIN[field]].strip() or "0"
+ try:
+ params[field] = VaryFlag(int(value))
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+
+ # Parse uncertainties if present
+ if len(lines) > 1 and lines[1].strip():
+ unc_line = f"{lines[1]:<60}"
+ for field in ["d_crfn", "d_temp", "d_thick", "d_deltal", "d_deltag", "d_deltae"]:
+ value = safe_parse(unc_line[FORMAT_UNCERTAINTY[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse additional Gaussian parameters if present
+ if len(lines) > 2 and lines[2].strip():
+ gaussian_line = f"{lines[2]:<64}"
+
+ # Parse main Gaussian parameters
+ for field in ["deltc1", "deltc2"]:
+ value = safe_parse(gaussian_line[FORMAT_GAUSSIAN[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse Gaussian flags
+ for field in ["flag_deltc1", "flag_deltc2"]:
+ value = gaussian_line[FORMAT_GAUSSIAN[field]].strip() or "0"
+ try:
+ params[field] = VaryFlag(int(value))
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+
+ # Parse Gaussian uncertainties if present
+ if len(lines) > 3 and lines[3].strip():
+ gaussian_unc_line = f"{lines[3]:<20}"
+ for field in ["d_deltc1", "d_deltc2"]:
+ value = safe_parse(gaussian_unc_line[FORMAT_GAUSSIAN_UNC[field]])
+ if value is not None:
+ params[field] = value
+
+ return cls(**params)
+
+ def to_lines(self) -> List[str]:
+ """Convert the parameters to a list of fixed-width format lines.
+
+ Returns:
+ List[str]: Lines representing the parameters
+ """
+ lines = []
+
+ # Format main parameter line
+ main_parts = [
+ format_float(self.crfn, width=9),
+ format_float(self.temp, width=9),
+ format_float(self.thick, width=9),
+ format_float(self.deltal, width=9),
+ format_float(self.deltag, width=9),
+ format_float(self.deltae, width=9),
+ format_vary(self.flag_crfn),
+ format_vary(self.flag_temp),
+ format_vary(self.flag_thick),
+ format_vary(self.flag_deltal),
+ format_vary(self.flag_deltag),
+ format_vary(self.flag_deltae),
+ ]
+ lines.append(" ".join(main_parts))
+
+ # Add uncertainties line if any uncertainties are present
+ if any(getattr(self, f"d_{param}") is not None for param in ["crfn", "temp", "thick", "deltal", "deltag", "deltae"]):
+ unc_parts = [
+ format_float(getattr(self, f"d_{param}", 0.0), width=10)
+ for param in ["crfn", "temp", "thick", "deltal", "deltag", "deltae"]
+ ]
+ lines.append("".join(unc_parts))
+
+ # Add Gaussian parameters if present
+ if self.deltc1 is not None and self.deltc2 is not None:
+ gaussian_parts = [
+ format_float(self.deltc1, width=10),
+ format_float(self.deltc2, width=10),
+ " " * 50, # Padding
+ format_vary(self.flag_deltc1),
+ format_vary(self.flag_deltc2),
+ ]
+ lines.append("".join(gaussian_parts))
+
+ # Add Gaussian uncertainties if present
+ if self.d_deltc1 is not None or self.d_deltc2 is not None:
+ gaussian_unc_parts = [format_float(self.d_deltc1 or 0.0, width=10), format_float(self.d_deltc2 or 0.0, width=10)]
+ lines.append("".join(gaussian_unc_parts))
+
+ return lines
+
+
+class BroadeningParameterCard(BaseModel):
+ """Container for a complete broadening parameter card set (Card Set 4).
+
+ This class handles a complete broadening parameter card set, including:
+ - Header line
+ - Parameter entries
+ - Trailing blank line
+ """
+
+ parameters: BroadeningParameters
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ bool: True if line is a valid header
+ """
+ return line.strip().upper().startswith("BROAD")
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "BroadeningParameterCard":
+ """Parse a complete broadening parameter card set from lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ BroadeningParameterCard: Parsed card set
+
+ Raises:
+ ValueError: If no valid header found or invalid format
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Parse parameters (skip header and trailing blank lines)
+ content_lines = [line for line in lines[1:] if line.strip()]
+ if not content_lines:
+ raise ValueError("No parameter lines found")
+
+ parameters = BroadeningParameters.from_lines(content_lines)
+ return cls(parameters=parameters)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card set to a list of lines.
+
+ Returns:
+ List[str]: Lines including header and parameters
+ """
+ lines = [CARD_4_HEADER]
+ lines.extend(self.parameters.to_lines())
+ lines.append("") # Trailing blank line
+ return lines
+
+
+if __name__ == "__main__":
+ # Enable logging for debugging
+ logging.basicConfig(level=logging.DEBUG)
+
+ # Test example with main parameters only
+ logging.debug("**Testing main parameters only**")
+ main_only_lines = ["1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0"]
+
+ try:
+ params = BroadeningParameters.from_lines(main_only_lines)
+ logging.debug("Successfully parsed main parameters:")
+ logging.debug(f"CRFN: {params.crfn}")
+ logging.debug(f"TEMP: {params.temp}")
+ logging.debug("Output lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse main parameters: {e}")
+
+ # Test example with uncertainties
+ logging.debug("**Testing with uncertainties**")
+ with_unc_lines = [
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ ]
+
+ try:
+ params = BroadeningParameters.from_lines(with_unc_lines)
+ logging.debug("Successfully parsed parameters with uncertainties:")
+ logging.debug(f"CRFN: {params.crfn} ± {params.d_crfn}")
+ logging.debug(f"TEMP: {params.temp} ± {params.d_temp}")
+ logging.debug("Output lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse parameters with uncertainties: {e}")
+
+ # Test example with Gaussian parameters
+ logging.debug("**Testing with Gaussian parameters**")
+ full_lines = [
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.000E-01 2.000E-02 1 1",
+ "5.000E-03 1.000E-03",
+ ]
+
+ try:
+ params = BroadeningParameters.from_lines(full_lines)
+ logging.debug("Successfully parsed full parameter set:")
+ logging.debug(f"DELTC1: {params.deltc1} ± {params.d_deltc1}")
+ logging.debug(f"DELTC2: {params.deltc2} ± {params.d_deltc2}")
+ logging.debug("Output lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse full parameter set: {e}")
+
+ # Test complete card set
+ logging.debug("**Testing complete card set**")
+ card_lines = [
+ "BROADening parameters may be varied",
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.000E-01 2.000E-02 1 1",
+ "5.000E-03 1.000E-03",
+ "",
+ ]
+
+ try:
+ card = BroadeningParameterCard.from_lines(card_lines)
+ logging.debug("Successfully parsed complete card set")
+ logging.debug("Output lines:")
+ for line in card.to_lines():
+ logging.debug(f"'{line}'")
+ except ValueError as e:
+ logging.error(f"Failed to parse complete card set: {e}")
+
+ # Test error handling
+ logging.debug("**Testing Error Handling**")
+
+ # Test invalid header
+ try:
+ bad_lines = ["WRONG header line", "1.2340E+00 2.9800E+02 1.5000E-01 2.5000E-02 1.0000E+00 5.0000E-01 1 0 1 0 1 0", ""]
+ logging.debug("Testing invalid header:")
+ BroadeningParameterCard.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for invalid header: {e}")
+
+ # Test invalid Gaussian parameters (missing one)
+ try:
+ bad_lines = [
+ "1.2340E+00 2.9800E+02 1.5000E-01 2.5000E-02 1.0000E+00 5.0000E-01 1 0 1 0 1 0", ## 11 char instead of 10
+ "1.0000E-02 1.0000E+00 1.0000E-03 1.0000E-03 1.0000E-02 1.0000E-02",
+ "1.0000E-01 1 1", # Missing DELTC2
+ ]
+ BroadeningParameters.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for invalid Gaussian parameters: {e}")
diff --git a/src/pleiades/sammy/parameters/external_r.py b/src/pleiades/sammy/parameters/external_r.py
new file mode 100644
index 0000000..228017d
--- /dev/null
+++ b/src/pleiades/sammy/parameters/external_r.py
@@ -0,0 +1,429 @@
+#!/usr/bin/env python
+"""Data class for card 03::external R-function parameters."""
+
+import logging
+from enum import Enum
+from typing import List, Optional
+
+from pydantic import BaseModel, Field, model_validator
+
+from pleiades.sammy.parameters.helper import VaryFlag, format_float, format_vary, safe_parse
+
+
+class ExternalRFormat(Enum):
+ FORMAT_3 = "3" # Standard format
+ FORMAT_3A = "3a" # Alternative compact format
+
+
+# For Format 3
+FORMAT_3 = {
+ "spin_group": slice(0, 3), # Fortran 1-3
+ "channel": slice(3, 5), # Fortran 4-5
+ "E_down": slice(5, 16), # Fortran 6-16
+ "E_up": slice(16, 27), # Fortran 17-27
+ "R_con": slice(27, 38), # Fortran 28-38
+ "R_lin": slice(38, 49), # Fortran 39-49
+ "s_alpha": slice(49, 60), # Fortran 50-60
+ "vary_E_down": slice(61, 62), # Fortran 62
+ "vary_E_up": slice(63, 64), # Fortran 64
+ "vary_R_con": slice(65, 66), # Fortran 66
+ "vary_R_lin": slice(67, 68), # Fortran 68
+ "vary_s_alpha": slice(69, 70), # Fortran 70
+}
+
+# For Format 3a (compact format)
+FORMAT_3A = {
+ "spin_group": slice(0, 2), # Fortran 1-2
+ "channel": slice(2, 3), # Fortran 3
+ "vary_E_down": slice(3, 4), # Fortran 4
+ "vary_E_up": slice(4, 5), # Fortran 5
+ "vary_R_con": slice(5, 6), # Fortran 6
+ "vary_R_lin": slice(6, 7), # Fortran 7
+ "vary_s_con": slice(7, 8), # Fortran 8
+ "vary_s_lin": slice(8, 9), # Fortran 9
+ "vary_R_q": slice(9, 10), # Fortran 10
+ "E_down": slice(10, 20), # Fortran 11-20
+ "E_up": slice(20, 30), # Fortran 21-30
+ "R_con": slice(30, 40), # Fortran 31-40
+ "R_lin": slice(40, 50), # Fortran 41-50
+ "s_con": slice(50, 60), # Fortran 51-60
+ "s_lin": slice(60, 70), # Fortran 61-70
+ "R_q": slice(70, 80), # Fortran 71-80
+}
+
+CARD_3_HEADER = "EXTERnal R-function parameters follow"
+CARD_3A_HEADER = "R-EXTernal parameters follow"
+
+
+class ExternalREntry(BaseModel):
+ format_type: ExternalRFormat
+ # Common fields
+ spin_group: int
+ channel: int
+ E_down: float = Field(description="Logarithmic singularity below energy range (eV)")
+ E_up: float = Field(description="Logarithmic singularity above energy range (eV)")
+ R_con: float = Field(description="Constant term")
+ R_lin: float = Field(description="Linear term")
+
+ # Format 3 specific
+ s_alpha: Optional[float] = Field(None, description="Coefficient of logarithmic term (must be non-negative)", ge=0.0)
+ vary_s_alpha: Optional[VaryFlag] = Field(default=VaryFlag.NO)
+
+ # Format 3a specific
+ s_con: Optional[float] = Field(None, description="Constant coefficient of logarithmic term", ge=0.0)
+ s_lin: Optional[float] = Field(None, description="Linear coefficient of logarithmic term")
+ R_q: Optional[float] = Field(None, description="Quadratic term")
+ vary_s_con: Optional[VaryFlag] = Field(default=VaryFlag.NO)
+ vary_s_lin: Optional[VaryFlag] = Field(default=VaryFlag.NO)
+ vary_R_q: Optional[VaryFlag] = Field(default=VaryFlag.NO)
+
+ # Common vary flags
+ vary_E_down: VaryFlag = Field(default=VaryFlag.NO)
+ vary_E_up: VaryFlag = Field(default=VaryFlag.NO)
+ vary_R_con: VaryFlag = Field(default=VaryFlag.NO)
+ vary_R_lin: VaryFlag = Field(default=VaryFlag.NO)
+
+ @model_validator(mode="after")
+ def validate_format_specific_fields(self) -> "ExternalREntry":
+ if self.format_type == ExternalRFormat.FORMAT_3:
+ if self.s_alpha is None:
+ raise ValueError("s_alpha is required for Format 3")
+ if any(v is not None for v in [self.s_con, self.s_lin, self.R_q]):
+ raise ValueError("Format 3a specific fields should not be set for Format 3")
+ else: # FORMAT_3A
+ if any(v is not None for v in [self.s_alpha]):
+ raise ValueError("Format 3 specific fields should not be set for Format 3a")
+ if any(v is None for v in [self.s_con, self.s_lin, self.R_q]):
+ raise ValueError("s_con, s_lin, and R_q are required for Format 3a")
+ return self
+
+ @classmethod
+ def from_str(cls, line: str, format_type: ExternalRFormat) -> "ExternalREntry":
+ """Parse an external R-function entry from a fixed-width format line.
+
+ Args:
+ line: Input line to parse
+ format_type: Format type to use
+
+ Returns:
+ ExternalREntry: Parsed entry
+
+ Raises:
+ ValueError: If line is empty or parsing fails
+ """
+ if not line.strip():
+ raise ValueError("Empty line provided")
+
+ # Make sure line is long enough by padding with spaces
+ line = f"{line:<80}"
+
+ # Select format based on type
+ format_layout = FORMAT_3 if format_type == ExternalRFormat.FORMAT_3 else FORMAT_3A
+
+ params = {"format_type": format_type}
+
+ # Parse integer fields
+ for field in ["spin_group", "channel"]:
+ value = safe_parse(line[format_layout[field]], as_int=True)
+ if value is not None:
+ params[field] = value
+
+ # Parse float fields common to both formats
+ for field in ["E_down", "E_up", "R_con", "R_lin"]:
+ value = safe_parse(line[format_layout[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse format-specific float fields
+ if format_type == ExternalRFormat.FORMAT_3:
+ value = safe_parse(line[format_layout["s_alpha"]])
+ if value is not None:
+ params["s_alpha"] = value
+ else: # FORMAT_3A
+ for field in ["s_con", "s_lin", "R_q"]:
+ value = safe_parse(line[format_layout[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse common vary flags
+ for field in ["vary_E_down", "vary_E_up", "vary_R_con", "vary_R_lin"]:
+ value = line[format_layout[field]].strip() or "0"
+ try:
+ params[field] = VaryFlag(int(value))
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+
+ # Parse format-specific vary flags
+ if format_type == ExternalRFormat.FORMAT_3:
+ try:
+ value = int(line[format_layout["vary_s_alpha"]].strip() or "0")
+ params["vary_s_alpha"] = VaryFlag(value)
+ except (ValueError, TypeError):
+ params["vary_s_alpha"] = VaryFlag.NO
+ else: # FORMAT_3A
+ for field in ["vary_s_con", "vary_s_lin", "vary_R_q"]:
+ try:
+ value = int(line[format_layout[field]].strip() or "0")
+ params[field] = VaryFlag(value)
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+
+ return cls(**params)
+
+ def to_str(self) -> str:
+ """Convert the external R-function entry to fixed-width format string."""
+ if self.format_type == ExternalRFormat.FORMAT_3:
+ # Format 3 has specific spacing requirements
+ parts = [
+ f"{self.spin_group:2d} ", # 3 digits
+ f"{self.channel:1d} ", # 2 digits
+ format_float(self.E_down, width=11), # 11 chars
+ format_float(self.E_up, width=11), # 11 chars
+ format_float(self.R_con, width=11), # 11 chars
+ format_float(self.R_lin, width=11), # 11 chars
+ format_float(self.s_alpha, width=11), # 11 chars
+ " ", # pad one space to ensure flag section in the right column
+ format_vary(self.vary_E_down),
+ " ",
+ format_vary(self.vary_E_up),
+ " ",
+ format_vary(self.vary_R_con),
+ " ",
+ format_vary(self.vary_R_lin),
+ " ",
+ format_vary(self.vary_s_alpha),
+ ]
+ return "".join(parts)
+ else: # FORMAT_3A
+ # Format 3A has compact spacing
+ # NOTE: compact format uses 10 chars for each float field
+ # whereas
+ # regular format uses 11 chars
+ parts = [
+ f"{self.spin_group:2d}",
+ f"{self.channel:1d}",
+ format_vary(self.vary_E_down),
+ format_vary(self.vary_E_up),
+ format_vary(self.vary_R_con),
+ format_vary(self.vary_R_lin),
+ format_vary(self.vary_s_con),
+ format_vary(self.vary_s_lin),
+ format_vary(self.vary_R_q),
+ format_float(self.E_down, width=10),
+ format_float(self.E_up, width=10),
+ format_float(self.R_con, width=10),
+ format_float(self.R_lin, width=10),
+ format_float(self.s_con, width=10),
+ format_float(self.s_lin, width=10),
+ format_float(self.R_q, width=10),
+ ]
+ return "".join(parts)
+
+
+class ExternalRFunction(BaseModel):
+ """Container for External R-function entries (Card Set 3/3a).
+
+ This class handles a complete External R-function card set, including:
+ - Header line
+ - Multiple parameter entries
+ - Trailing blank line
+
+ Examples:
+ >>> # Create from lines
+ >>> lines = [
+ ... "EXTERnal R-function parameters follow",
+ ... " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0",
+ ... " 2 1 2.3450E+00 6.7890E+00 2.3400E-01 5.6700E-01 8.9000E-01 0 1 0 0 1",
+ ... ""
+ ... ]
+ >>> r_function = ExternalRFunction.from_lines(lines)
+ >>> len(r_function.entries)
+ 2
+
+ >>> # Convert back to lines
+ >>> output_lines = r_function.to_lines()
+ >>> len(output_lines)
+ 4 # Header + 2 entries + blank line
+ """
+
+ format_type: ExternalRFormat
+ entries: List[ExternalREntry] = Field(default_factory=list)
+
+ @classmethod
+ def is_header_line(cls, line: str) -> Optional[ExternalRFormat]:
+ """Check if line is a header and return corresponding format type.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ ExternalRFormat if line is a header, None otherwise
+ """
+ line = line.strip()
+ if line.startswith("EXTER"):
+ return ExternalRFormat.FORMAT_3
+ elif line.startswith("R-EXT"):
+ return ExternalRFormat.FORMAT_3A
+ return None
+
+ @classmethod
+ def write_header(cls, format_type: ExternalRFormat) -> str:
+ """Generate the appropriate header line for the format.
+
+ Args:
+ format_type: Format type to use
+
+ Returns:
+ str: Header line
+ """
+ if format_type == ExternalRFormat.FORMAT_3:
+ return CARD_3_HEADER
+ else:
+ return CARD_3A_HEADER
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "ExternalRFunction":
+ """Parse a complete External R-function card set from lines.
+
+ Args:
+ lines: List of input lines including header and entries
+
+ Returns:
+ ExternalRFunction: Parsed card set
+
+ Raises:
+ ValueError: If no valid header found or invalid format
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Find and validate header
+ format_type = cls.is_header_line(lines[0])
+ if format_type is None:
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Parse entries (skip header and trailing blank lines)
+ entries = []
+ for line in lines[1:]:
+ if not line.strip(): # Skip blank lines
+ continue
+ try:
+ entry = ExternalREntry.from_str(line, format_type)
+ entries.append(entry)
+ except ValueError as e:
+ raise ValueError(f"Failed to parse entry line: {line}") from e
+
+ return cls(format_type=format_type, entries=entries)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card set to a list of lines.
+
+ Returns:
+ List[str]: Lines including header, entries, and trailing blank line
+ """
+ lines = []
+
+ # Add header
+ lines.append(self.write_header(self.format_type))
+
+ # Add entries
+ for entry in self.entries:
+ lines.append(entry.to_str())
+
+ # Add trailing blank line
+ lines.append("")
+
+ return lines
+
+
+if __name__ == "__main__":
+ # Enable logging for debugging
+ logging.basicConfig(level=logging.DEBUG)
+
+ # Test ExternalREntry with both formats
+ logging.debug("**Testing ExternalREntry with Format 3**")
+ format3_examples = [
+ " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 1 0 1",
+ " 2 1 2.3450E+00 6.7890E+00 2.3400E-01 5.6700E-01 8.9000E-01 0 1 0 0 1",
+ # ^^ two spaces here
+ ]
+
+ for i, line in enumerate(format3_examples):
+ entry = ExternalREntry.from_str(line, ExternalRFormat.FORMAT_3)
+ logging.debug(f"Format 3 Example {i+1}:")
+ logging.debug(f"Object : {entry}")
+ logging.debug(f"Original : {line}")
+ logging.debug(f"Reformatted: {entry.to_str()}")
+ logging.debug("")
+
+ logging.debug("**Testing ExternalREntry with Format 3A**")
+ format3a_examples = [
+ "12100100001.2340E+005.6780E+001.2300E-014.5600E-017.8900E-018.9000E-019.0000E-01",
+ "21201001012.3450E+006.7890E+002.3400E-015.6700E-018.9000E-019.1000E-019.2000E-01",
+ ]
+
+ for i, line in enumerate(format3a_examples):
+ entry = ExternalREntry.from_str(line, ExternalRFormat.FORMAT_3A)
+ logging.debug(f"Format 3A Example {i+1}:")
+ logging.debug(f"Object : {entry}")
+ logging.debug(f"Original : {line}")
+ logging.debug(f"Reformatted: {entry.to_str()}")
+ logging.debug("")
+
+ # Test ExternalRFunction with complete card sets
+ logging.debug("**Testing ExternalRFunction with Format 3**")
+ format3_lines = [
+ "EXTERnal R-function parameters follow",
+ " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0",
+ " 2 1 2.3450E+00 6.7890E+00 2.3400E-01 5.6700E-01 8.9000E-01 0 1 0 0 1",
+ "",
+ ]
+
+ try:
+ r_function = ExternalRFunction.from_lines(format3_lines)
+ logging.debug("Successfully parsed Format 3 card set:")
+ logging.debug("Number of entries: {len(r_function.entries)}")
+ logging.debug("Output lines:")
+ for line in r_function.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse Format 3 card set: {e}")
+
+ logging.debug("**Testing ExternalRFunction with Format 3A**")
+ format3a_lines = [
+ "R-EXTernal parameters follow",
+ "12100100001.2340E+005.6780E+001.2300E-014.5600E-017.8900E-018.9000E-019.0000E-01",
+ "21201001012.3450E+006.7890E+002.3400E-015.6700E-018.9000E-019.1000E-019.2000E-01",
+ "",
+ ]
+
+ try:
+ r_function = ExternalRFunction.from_lines(format3a_lines)
+ logging.debug("Successfully parsed Format 3A card set:")
+ logging.debug(f"Number of entries: {len(r_function.entries)}")
+ logging.debug("Output lines:")
+ for line in r_function.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse Format 3A card set: {e}")
+
+ # Test error handling
+ logging.debug("**Testing Error Handling**")
+
+ # Test invalid s_alpha (negative value)
+ try:
+ bad_line = " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 -7.8900E-01 1 0 0 1 0"
+ logging.debug(f"Testing line with negative s_alpha: '{bad_line}'")
+ ExternalREntry.from_str(bad_line, ExternalRFormat.FORMAT_3)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for negative s_alpha: {e}")
+
+ # Test invalid header
+ try:
+ bad_lines = ["WRONG header line", " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0", ""]
+ logging.debug("Testing invalid header:")
+ ExternalRFunction.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for invalid header: {e}")
diff --git a/src/pleiades/sammy/parameters/helper.py b/src/pleiades/sammy/parameters/helper.py
new file mode 100644
index 0000000..c751cb5
--- /dev/null
+++ b/src/pleiades/sammy/parameters/helper.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python
+"""Helper functions for parameter file handling."""
+
+import re
+from enum import Enum
+from typing import Optional
+
+
+class VaryFlag(Enum):
+ NO = 0
+ YES = 1
+ PUP = 3 # propagated uncertainty parameter
+ USE_FROM_PARFILE = -1 # do not vary, use value from parfile
+ USE_FROM_OTHERS = -2 # do not vary, use value from other sources (INP, COV, etc.)
+
+
+def safe_parse(s: str, as_int: bool = False) -> Optional[float]:
+ """Helper function to safely parse numeric values
+
+ Args:
+ s: String to parse
+ as_int: Flag to parse as integer (default: False)
+
+ Returns:
+ Parsed value or None if parsing failed
+ """
+ s = s.strip()
+ if not s:
+ return None
+ try:
+ if as_int:
+ return int(s)
+ return float(s)
+ except ValueError:
+ return None
+
+
+def format_float(value: Optional[float], width: int = 11) -> str:
+ """Helper to format float values in fixed width with proper spacing"""
+ if value is None:
+ return " " * width
+
+ # Subtract 5 characters for "E+xx" (scientific notation exponent)
+ # The rest is for the significant digits (1 before the dot and decimals)
+ max_decimals = max(0, width - 6) # At least room for "0.E+00"
+
+ # Create a format string with dynamic precision
+ format_str = f"{{:.{max_decimals}E}}"
+ formatted = format_str.format(value)
+
+ # Ensure the string fits the width
+ if len(formatted) > width:
+ raise ValueError(f"Cannot format value {value} to fit in {width} characters.")
+
+ # Align to the left if required
+ return f"{formatted:<{width}}"
+
+
+def format_vary(value: VaryFlag) -> str:
+ """Helper to format vary flags with proper spacing"""
+ if value == VaryFlag.NO:
+ return "0"
+ if value == VaryFlag.YES:
+ return "1"
+ if value == VaryFlag.PUP:
+ return "3"
+ if value == VaryFlag.USE_FROM_PARFILE:
+ return "-1"
+ if value == VaryFlag.USE_FROM_OTHERS:
+ return "-2"
+ raise ValueError(f"Unsupported vary flag: {value}")
+
+
+def parse_keyword_pairs_to_dict(text: str) -> dict:
+ """
+ Parse an ASCII text into a dictionary of keyword-value pairs.
+
+ Parameters:
+ text (str): The input text with keyword-value pairs.
+
+ Returns:
+ dict: A dictionary with keywords as keys and parsed values.
+ """
+ data = {}
+
+ # Regex to match key=value pairs
+ # (\w+): captures the keyword
+ # \s*=\s*: matches the equal sign with optional spaces around it
+ # ([^=\n]+?): captures the value until the next keyword or end of line
+ # (?=\s+\w+\s*=|$): lookahead to match the next keyword or end of line
+ pattern = r"(\w+)\s*=\s*([^=\n]+?)(?=\s+\w+\s*=|$)"
+
+ for line in text.splitlines():
+ # Skip empty lines
+ if not line.strip():
+ continue
+
+ # Find all key-value pairs in the line
+ matches = re.findall(pattern, line)
+
+ for key, value in matches:
+ # Process the value
+ value = value.strip()
+ if " " in value:
+ # Convert space-separated numbers to a list of float or int
+ items = value.split()
+ parsed_value = [float(item) if "." in item else int(item) if item.isdigit() else item for item in items]
+ else:
+ # Single value, convert to int or float if possible
+ if value.isdigit():
+ parsed_value = int(value)
+ else:
+ parsed_value = float(value) if "." in value else value
+
+ data[key] = parsed_value
+
+ return data
diff --git a/src/pleiades/sammy/parameters/normalization.py b/src/pleiades/sammy/parameters/normalization.py
new file mode 100644
index 0000000..01100ba
--- /dev/null
+++ b/src/pleiades/sammy/parameters/normalization.py
@@ -0,0 +1,316 @@
+#!/usr/bin/env python
+"""Data class for card 06::normalization and background parameters."""
+
+import logging
+from typing import List, Optional
+
+from pydantic import BaseModel, Field
+
+from pleiades.sammy.parameters.helper import VaryFlag, format_float, format_vary, safe_parse
+
+# Format definitions for fixed-width fields
+# Each numeric field follows a 9+1 pattern for readability
+FORMAT_MAIN = {
+ "anorm": slice(0, 10), # Normalization
+ "backa": slice(10, 20), # Constant background
+ "backb": slice(20, 30), # Background proportional to 1/E
+ "backc": slice(30, 40), # Background proportional to √E
+ "backd": slice(40, 50), # Exponential background coefficient
+ "backf": slice(50, 60), # Exponential decay constant
+ "flag_anorm": slice(60, 62), # Flag for ANORM
+ "flag_backa": slice(62, 64), # Flag for BACKA
+ "flag_backb": slice(64, 66), # Flag for BACKB
+ "flag_backc": slice(66, 68), # Flag for BACKC
+ "flag_backd": slice(68, 70), # Flag for BACKD
+ "flag_backf": slice(70, 72), # Flag for BACKF
+}
+
+FORMAT_UNCERTAINTY = {
+ "d_anorm": slice(0, 10),
+ "d_backa": slice(10, 20),
+ "d_backb": slice(20, 30),
+ "d_backc": slice(30, 40),
+ "d_backd": slice(40, 50),
+ "d_backf": slice(50, 60),
+}
+
+CARD_6_HEADER = "NORMAlization and background are next"
+
+
+class NormalizationParameters(BaseModel):
+ """Parameters for normalization and background for one angle.
+
+ Contains:
+ - Normalization and background values
+ - Their uncertainties (optional)
+ - Flags indicating whether each parameter should be varied
+
+ Note on fixed-width format:
+ Each numeric field in the file uses a 10-column width with a 9+1 pattern:
+ - 9 characters for the actual numeric data (e.g. "1.2340E+00")
+ - 1 character for space separator
+ """
+
+ # Main parameters
+ anorm: float = Field(description="Normalization (dimensionless)")
+ backa: float = Field(description="Constant background")
+ backb: float = Field(description="Background proportional to 1/E")
+ backc: float = Field(description="Background proportional to √E")
+ backd: float = Field(description="Exponential background coefficient")
+ backf: float = Field(description="Exponential decay constant")
+
+ # Optional uncertainties
+ d_anorm: Optional[float] = Field(None, description="Uncertainty on ANORM")
+ d_backa: Optional[float] = Field(None, description="Uncertainty on BACKA")
+ d_backb: Optional[float] = Field(None, description="Uncertainty on BACKB")
+ d_backc: Optional[float] = Field(None, description="Uncertainty on BACKC")
+ d_backd: Optional[float] = Field(None, description="Uncertainty on BACKD")
+ d_backf: Optional[float] = Field(None, description="Uncertainty on BACKF")
+
+ # Vary flags
+ flag_anorm: VaryFlag = Field(default=VaryFlag.NO)
+ flag_backa: VaryFlag = Field(default=VaryFlag.NO)
+ flag_backb: VaryFlag = Field(default=VaryFlag.NO)
+ flag_backc: VaryFlag = Field(default=VaryFlag.NO)
+ flag_backd: VaryFlag = Field(default=VaryFlag.NO)
+ flag_backf: VaryFlag = Field(default=VaryFlag.NO)
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "NormalizationParameters":
+ """Parse normalization parameters from a list of fixed-width format lines.
+
+ Args:
+ lines: List of input lines
+
+ Returns:
+ NormalizationParameters: Parsed parameters
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines or not lines[0].strip():
+ raise ValueError("No valid parameter line provided")
+
+ # Make sure first line is long enough
+ main_line = f"{lines[0]:<72}"
+
+ params = {}
+
+ # Parse main parameters
+ for field in ["anorm", "backa", "backb", "backc", "backd", "backf"]:
+ value = safe_parse(main_line[FORMAT_MAIN[field]])
+ if value is not None:
+ params[field] = value
+
+ # Parse vary flags
+ for field in ["flag_anorm", "flag_backa", "flag_backb", "flag_backc", "flag_backd", "flag_backf"]:
+ value = main_line[FORMAT_MAIN[field]].strip() or "0"
+ try:
+ params[field] = VaryFlag(int(value))
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+
+ # Parse uncertainties if present
+ if len(lines) > 1 and lines[1].strip():
+ unc_line = f"{lines[1]:<60}"
+ for field in ["d_anorm", "d_backa", "d_backb", "d_backc", "d_backd", "d_backf"]:
+ value = safe_parse(unc_line[FORMAT_UNCERTAINTY[field]])
+ if value is not None:
+ params[field] = value
+
+ return cls(**params)
+
+ def to_lines(self) -> List[str]:
+ """Convert the parameters to a list of fixed-width format lines.
+
+ Returns:
+ List[str]: Lines representing the parameters
+ """
+ lines = []
+
+ # Format main parameter line
+ main_parts = [
+ format_float(self.anorm, width=9),
+ format_float(self.backa, width=9),
+ format_float(self.backb, width=9),
+ format_float(self.backc, width=9),
+ format_float(self.backd, width=9),
+ format_float(self.backf, width=9),
+ format_vary(self.flag_anorm),
+ format_vary(self.flag_backa),
+ format_vary(self.flag_backb),
+ format_vary(self.flag_backc),
+ format_vary(self.flag_backd),
+ format_vary(self.flag_backf),
+ ]
+ lines.append(" ".join(main_parts))
+
+ # Add uncertainties line if any uncertainties are present
+ if any(getattr(self, f"d_{param}") is not None for param in ["anorm", "backa", "backb", "backc", "backd", "backf"]):
+ unc_parts = [
+ format_float(getattr(self, f"d_{param}", 0.0), width=10) for param in ["anorm", "backa", "backb", "backc", "backd", "backf"]
+ ]
+ lines.append("".join(unc_parts))
+
+ return lines
+
+
+class NormalizationBackgroundCard(BaseModel):
+ """Container for complete normalization/background card set (Card Set 6).
+
+ This class handles a complete card set, including:
+ - Header line
+ - Parameter entries for each angle
+ - Trailing blank line
+ """
+
+ angle_sets: List[NormalizationParameters] = Field(min_items=1)
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ bool: True if line is a valid header
+ """
+ return line.strip().upper().startswith("NORMA")
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "NormalizationBackgroundCard":
+ """Parse a complete normalization card set from lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ NormalizationBackgroundCard: Parsed card set
+
+ Raises:
+ ValueError: If no valid header found or invalid format
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Parse parameters (skip header and trailing blank lines)
+ content_lines = [line for line in lines[1:] if line.strip()]
+ if not content_lines:
+ raise ValueError("No parameter lines found")
+
+ # Parse angle sets (each set can have 1-2 lines)
+ angle_sets = []
+ i = 0
+ while i < len(content_lines):
+ # Check if next line exists and is an uncertainty line
+ next_lines = [content_lines[i]]
+ if i + 1 < len(content_lines):
+ # Check if next line looks like uncertainties (contains numeric values)
+ # rather than a new parameter set
+ if safe_parse(content_lines[i + 1][:10]) is not None:
+ next_lines.append(content_lines[i + 1])
+ i += 2
+ else:
+ i += 1
+ else:
+ i += 1
+
+ angle_sets.append(NormalizationParameters.from_lines(next_lines))
+
+ return cls(angle_sets=angle_sets)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card set to a list of lines.
+
+ Returns:
+ List[str]: Lines including header and parameters
+ """
+ lines = [CARD_6_HEADER]
+ for angle_set in self.angle_sets:
+ lines.extend(angle_set.to_lines())
+ lines.append("") # Trailing blank line
+ return lines
+
+
+if __name__ == "__main__":
+ # Enable logging for debugging
+ logging.basicConfig(level=logging.DEBUG)
+
+ # Test example with main parameters only
+ logging.debug("**Testing main parameters only**")
+ main_only_lines = ["1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0"]
+
+ try:
+ params = NormalizationParameters.from_lines(main_only_lines)
+ logging.debug("Successfully parsed main parameters:")
+ logging.debug(f"ANORM: {params.anorm}")
+ logging.debug(f"BACKA: {params.backa}")
+ logging.debug("Output lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse main parameters: {e}")
+
+ # Test example with uncertainties
+ logging.debug("**Testing with uncertainties**")
+ with_unc_lines = [
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ ]
+
+ try:
+ params = NormalizationParameters.from_lines(with_unc_lines)
+ logging.debug("Successfully parsed parameters with uncertainties:")
+ logging.debug(f"ANORM: {params.anorm} ± {params.d_anorm}")
+ logging.debug(f"BACKA: {params.backa} ± {params.d_backa}")
+ logging.debug("Output lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse parameters with uncertainties: {e}")
+
+ # Test complete card set with multiple angles
+ logging.debug("**Testing complete card set with multiple angles**")
+ card_lines = [
+ "NORMAlization and background are next",
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.300E+00 3.000E+02 1.600E-01 2.600E-02 1.100E+00 5.100E-01 1 0 1 0 1 0",
+ "",
+ ]
+
+ try:
+ card = NormalizationBackgroundCard.from_lines(card_lines)
+ logging.debug("Successfully parsed complete card set")
+ logging.debug(f"Number of angle sets: {len(card.angle_sets)}")
+ logging.debug("Output lines:")
+ for line in card.to_lines():
+ logging.debug(f"'{line}'")
+ except ValueError as e:
+ logging.error(f"Failed to parse complete card set: {e}")
+
+ # Test error handling
+ logging.debug("\n**Testing Error Handling**")
+
+ # Test invalid header
+ try:
+ bad_lines = ["WRONG header line", "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0", ""]
+ logging.debug("Testing invalid header:")
+ NormalizationBackgroundCard.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for invalid header: {e}")
+
+ # Test empty parameter set
+ try:
+ bad_lines = ["NORMAlization and background are next", ""]
+ logging.debug("Testing empty parameter set:")
+ NormalizationBackgroundCard.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for empty parameter set: {e}")
diff --git a/src/pleiades/sammy/parameters/radius.py b/src/pleiades/sammy/parameters/radius.py
new file mode 100644
index 0000000..bc99ea3
--- /dev/null
+++ b/src/pleiades/sammy/parameters/radius.py
@@ -0,0 +1,964 @@
+#!/usr/bin/env python
+"""Card Set 7/7a: Radius Parameters.
+
+This module handles both fixed-width (Card Set 7) and keyword-based (Card Set 7a) formats
+for radius parameters in SAMMY parameter files.
+"""
+
+import re
+from enum import Enum
+from typing import List, Optional, Tuple, Union
+
+from pydantic import BaseModel, Field, field_validator, model_validator
+
+from pleiades.sammy.parameters.helper import VaryFlag, format_float, format_vary, parse_keyword_pairs_to_dict, safe_parse
+
+
+class OrbitalMomentum(str, Enum):
+ """Valid values for orbital angular momentum specification."""
+
+ ODD = "ODD"
+ EVEN = "EVEN"
+ ALL = "ALL"
+
+
+class RadiusParameters(BaseModel):
+ """Container for nuclear radius parameters used in SAMMY calculations.
+
+ This class represents a set of radius parameters that define both the potential
+ scattering radius and the radius used for penetrabilities and shift calculations.
+ These parameters can be applied globally or to specific spin groups and channels.
+
+ Attributes:
+ effective_radius (float):
+ The radius (in Fermi) used for potential scattering calculations.
+
+ true_radius (float):
+ The radius (in Fermi) used for penetrabilities and shift calculations.
+ Special values:
+ - If 0: Uses the CRFN value from input file/card set 4
+ - If negative: Absolute value represents mass ratio to neutron (AWRI),
+ radius calculated as 1.23(AWRI)^1/3 + 0.8 (ENDF formula)
+
+ channel_mode (int):
+ Determines how channels are specified:
+ - 0: Parameters apply to all channels
+ - 1: Parameters apply only to specified channels in channels list
+
+ vary_effective (VaryFlag):
+ Flag indicating how effective radius should be treated:
+ - NO (0): Parameter is held fixed
+ - YES (1): Parameter is varied in fitting
+ - PUP (3): Parameter is treated as a propagated uncertainty parameter
+
+ vary_true (VaryFlag):
+ Flag indicating how true radius should be treated:
+ - USE_FROM_EFFECTIVE (-1): Treated as identical to effective_radius
+ - NO (0): Parameter is held fixed
+ - YES (1): Parameter is varied independently
+ - PUP (3): Parameter is treated as a propagated uncertainty parameter
+
+ spin_groups (List[int]):
+ List of spin group numbers that use these radius parameters.
+ Values > 500 indicate omitted resonances.
+
+ channels (Optional[List[int]]):
+ List of channel numbers when channel_mode=1.
+ When channel_mode=0, this should be None.
+
+ Note:
+ This class supports the three different input formats specified in SAMMY:
+ - Default format (card set 7) for <99 spin groups
+ - Alternate format for >99 spin groups
+ - Keyword-based format
+ However, internally it maintains a consistent representation regardless
+ of input format.
+ """
+
+ effective_radius: float = Field(description="Radius for potential scattering (Fermi)", ge=0)
+ true_radius: float = Field(description="Radius for penetrabilities and shifts (Fermi)")
+ channel_mode: int = Field(
+ description="Channel specification mode (0: all channels, 1: specific channels)",
+ ge=0, # Greater than or equal to 0
+ le=1, # Less than or equal to 1
+ )
+ vary_effective: VaryFlag = Field(default=VaryFlag.NO, description="Flag for varying effective radius")
+ vary_true: VaryFlag = Field(default=VaryFlag.NO, description="Flag for varying true radius")
+ spin_groups: Optional[List[int]] = Field(
+ description="List of spin group numbers",
+ )
+ channels: Optional[List[int]] = Field(default=None, description="List of channel numbers (required when channel_mode=1)")
+
+ @field_validator("spin_groups")
+ def validate_spin_groups(cls, v: List[int]) -> List[int]:
+ """Validate spin group numbers.
+
+ Args:
+ v: List of spin group numbers
+
+ Returns:
+ List[int]: Validated spin group numbers
+
+ Raises:
+ ValueError: If any spin group number is invalid
+ """
+ for group in v:
+ if group <= 0:
+ raise ValueError(f"Spin group numbers must be positive, got {group}")
+
+ # Values > 500 are valid but indicate omitted resonances
+ # We allow them but might want to warn the user
+ if group > 500:
+ print(f"Warning: Spin group {group} > 500 indicates omitted resonances")
+
+ return v
+
+ @field_validator("vary_true")
+ def validate_vary_true(cls, v: VaryFlag) -> VaryFlag:
+ """Validate vary_true flag has valid values.
+
+ For true radius, we allow an additional special value -1 (USE_FROM_PARFILE)
+
+ Args:
+ v: Vary flag value
+
+ Returns:
+ VaryFlag: Validated flag value
+
+ Raises:
+ ValueError: If flag value is invalid
+ """
+ allowed_values = [
+ VaryFlag.USE_FROM_PARFILE, # -1
+ VaryFlag.NO, # 0
+ VaryFlag.YES, # 1
+ VaryFlag.PUP, # 3
+ ]
+ if v not in allowed_values:
+ raise ValueError(f"vary_true must be one of {allowed_values}, got {v}")
+ return v
+
+ @model_validator(mode="after")
+ def validate_channels(self) -> "RadiusParameters":
+ """Validate channel specifications.
+
+ Ensures that:
+ 1. If channel_mode=1, channels must be provided
+ 2. If channel_mode=0, channels should be None
+
+ Returns:
+ RadiusParameters: Self if validation passes
+
+ Raises:
+ ValueError: If channel specifications are invalid
+ """
+ if self.channel_mode == 1 and not self.channels:
+ raise ValueError("When channel_mode=1, channels must be provided")
+ if self.channel_mode == 0 and self.channels is not None:
+ raise ValueError("When channel_mode=0, channels must be None")
+ return self
+
+ @model_validator(mode="after")
+ def validate_true_radius_consistency(self) -> "RadiusParameters":
+ """Validate consistency between true_radius and vary_true.
+
+ Ensures that:
+ 1. If vary_true is USE_FROM_PARFILE, true_radius matches effective_radius
+ 2. If true_radius is 0, vary_true cannot be USE_FROM_PARFILE
+ 3. If true_radius is negative, it represents AWRI and vary_true cannot be USE_FROM_PARFILE
+
+ Returns:
+ RadiusParameters: Self if validation passes
+
+ Raises:
+ ValueError: If radius specifications are inconsistent
+ """
+ if self.vary_true == VaryFlag.USE_FROM_PARFILE:
+ if self.true_radius != self.effective_radius:
+ raise ValueError("When vary_true is USE_FROM_PARFILE (-1), " "true_radius must match effective_radius")
+
+ # Special cases for true_radius
+ if self.true_radius == 0:
+ if self.vary_true == VaryFlag.USE_FROM_PARFILE:
+ raise ValueError("When true_radius=0 (use CRFN value), " "vary_true cannot be USE_FROM_PARFILE (-1)")
+
+ if self.true_radius < 0:
+ if self.vary_true == VaryFlag.USE_FROM_PARFILE:
+ raise ValueError("When true_radius is negative (AWRI specification), " "vary_true cannot be USE_FROM_PARFILE (-1)")
+
+ return self
+
+
+# Format definitions for fixed-width fields
+FORMAT_DEFAULT = {
+ "pareff": slice(0, 10), # Effective radius (Fermi)
+ "partru": slice(10, 20), # True radius (Fermi)
+ "ichan": slice(20, 21), # Channel indicator
+ "ifleff": slice(21, 22), # Flag for PAREFF
+ "ifltru": slice(22, 24), # Flag for PARTRU
+ # Spin groups start at col 24, 2 cols each
+ # After IX=0 marker, channel numbers use 2 cols each
+}
+
+CARD_7_HEADER = "RADIUs parameters follow"
+
+
+class RadiusCardDefault(BaseModel):
+ """Handler for default format radius parameter cards (Card Set 7).
+
+ This class handles parsing and writing radius parameters in the default
+ fixed-width format used for systems with fewer than 99 spin groups.
+
+ The format includes:
+ - Fixed width fields for radii and flags
+ - Support for multiple lines of spin groups with -1 continuation
+ - Optional channel numbers after IX=0 marker when channel_mode=1
+
+ Note:
+ This format should only be used when the number of spin groups < 99.
+ For larger systems, use RadiusCardAlternate.
+ """
+
+ parameters: RadiusParameters
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ bool: True if line is a valid header
+ """
+ return line.strip().upper().startswith("RADIU")
+
+ @staticmethod
+ def _parse_numbers_from_line(line: str, start_pos: int, width: int) -> List[int]:
+ """Parse fixed-width integer values from a line.
+
+ Args:
+ line: Input line
+ start_pos: Starting position
+ width: Width of each field
+
+ Returns:
+ List[int]: List of parsed integers, stopping at first invalid value
+ """
+ numbers = []
+ pos = start_pos
+ while pos + width <= len(line):
+ value = safe_parse(line[pos : pos + width], as_int=True)
+ if value is None:
+ break
+ numbers.append(value)
+ pos += width
+ return numbers
+
+ @classmethod
+ def _parse_spin_groups_and_channels(cls, lines: List[str]) -> Tuple[List[int], Optional[List[int]]]:
+ """Parse spin groups and optional channels from lines.
+
+ Args:
+ lines: List of input lines containing spin groups/channels
+
+ Returns:
+ Tuple containing:
+ - List[int]: Spin group numbers
+ - Optional[List[int]]: Channel numbers if present
+
+ Note:
+ Handles continuation lines (-1 marker) and IX=0 marker for channels
+ """
+ spin_groups = []
+ channels = None
+
+ for line in lines:
+ # Parse numbers 2 columns each starting at position 24
+ numbers = cls._parse_numbers_from_line(line, 24, 2)
+
+ if not numbers:
+ continue
+
+ # Check for continuation marker (-1)
+ if numbers[-1] == -1:
+ spin_groups.extend(numbers[:-1])
+ continue
+
+ # Check for IX=0 marker (indicates channels follow)
+ if 0 in numbers:
+ zero_index = numbers.index(0)
+ spin_groups.extend(numbers[:zero_index])
+ channels = numbers[zero_index + 1 :]
+ break
+
+ spin_groups.extend(numbers)
+
+ return spin_groups, channels
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "RadiusCardDefault":
+ """Parse radius parameters from fixed-width format lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ RadiusCardDefault: Parsed card
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Get content lines (skip header and trailing blank)
+ content_lines = [line for line in lines[1:] if line.strip()]
+ if not content_lines:
+ raise ValueError("No parameter lines found")
+
+ # Parse first line for main parameters
+ main_line = content_lines[0]
+
+ # Ensure line is long enough
+ if len(main_line) < 24: # Minimum length for main parameters
+ raise ValueError("Parameter line too short")
+
+ # Parse main parameters
+ params = {
+ "effective_radius": safe_parse(main_line[FORMAT_DEFAULT["pareff"]]),
+ "true_radius": safe_parse(main_line[FORMAT_DEFAULT["partru"]]),
+ "channel_mode": safe_parse(main_line[FORMAT_DEFAULT["ichan"]], as_int=True) or 0,
+ }
+
+ # Parse flags
+ try:
+ params["vary_effective"] = VaryFlag(int(main_line[FORMAT_DEFAULT["ifleff"]].strip() or "0"))
+ params["vary_true"] = VaryFlag(int(main_line[FORMAT_DEFAULT["ifltru"]].strip() or "0"))
+ except ValueError:
+ raise ValueError("Invalid vary flags")
+
+ # Parse spin groups and channels
+ spin_groups, channels = cls._parse_spin_groups_and_channels(content_lines)
+
+ if not spin_groups:
+ raise ValueError("No spin groups found")
+
+ params["spin_groups"] = spin_groups
+ params["channels"] = channels
+
+ # Create parameters object
+ try:
+ parameters = RadiusParameters(**params)
+ except ValueError as e:
+ raise ValueError(f"Invalid parameter values: {e}")
+
+ return cls(parameters=parameters)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card to fixed-width format lines.
+
+ Returns:
+ List[str]: Lines including header
+ """
+ lines = [CARD_7_HEADER]
+
+ # Format main parameters
+ main_parts = [
+ format_float(self.parameters.effective_radius, width=10),
+ format_float(self.parameters.true_radius, width=10),
+ str(self.parameters.channel_mode),
+ format_vary(self.parameters.vary_effective),
+ format_vary(self.parameters.vary_true),
+ ]
+
+ # Add spin groups (up to 28 per line)
+ spin_groups = self.parameters.spin_groups
+ spin_group_lines = []
+
+ current_line = []
+ for group in spin_groups:
+ current_line.append(f"{group:2d}")
+ if len(current_line) == 28: # Max groups per line
+ spin_group_lines.append("".join(current_line))
+ current_line = []
+
+ # Add any remaining groups
+ if current_line:
+ spin_group_lines.append("".join(current_line))
+
+ # Combine main parameters with first line of spin groups
+ if spin_group_lines:
+ first_line = "".join(main_parts)
+ if len(spin_group_lines[0]) > 0:
+ first_line += spin_group_lines[0]
+ lines.append(first_line)
+
+ # Add remaining spin group lines
+ lines.extend(spin_group_lines[1:])
+
+ # Add channels if present
+ if self.parameters.channels:
+ channel_line = "0" # IX=0 marker
+ for channel in self.parameters.channels:
+ channel_line += f"{channel:2d}"
+ lines.append(channel_line)
+
+ # Add trailing blank line
+ lines.append("")
+
+ return lines
+
+
+# Format definitions for fixed-width fields
+FORMAT_ALTERNATE = {
+ "pareff": slice(0, 10), # Radius for potential scattering
+ "partru": slice(10, 20), # Radius for penetrabilities
+ "ichan": slice(20, 25), # Channel indicator (5 cols)
+ "ifleff": slice(25, 30), # Flag for PAREFF (5 cols)
+ "ifltru": slice(30, 35), # Flag for PARTRU (5 cols)
+ # Spin groups start at col 35, 5 cols each
+ # After IX=0 marker, channel numbers use 5 cols each
+}
+
+CARD_7_ALT_HEADER = "RADIUs parameters follow"
+
+
+class RadiusCardAlternate(BaseModel):
+ """Handler for alternate format radius parameter cards (Card Set 7 alternate).
+
+ This class handles parsing and writing radius parameters in the alternate
+ fixed-width format used for systems with more than 99 spin groups.
+
+ The format includes:
+ - Fixed width fields for radii and flags (same positions as default)
+ - 5-column width for integer values (instead of 2)
+ - Support for continuation lines with -1 marker
+ - Optional channel numbers after IX=0 marker when channel_mode=1
+
+ Note:
+ This format should be used when the number of spin groups >= 99.
+ For smaller systems, use RadiusCardDefault.
+ """
+
+ parameters: RadiusParameters
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ bool: True if line is a valid header
+ """
+ return line.strip().upper().startswith("RADIU")
+
+ @staticmethod
+ def _parse_numbers_from_line(line: str, start_pos: int, width: int) -> List[int]:
+ """Parse fixed-width integer values from a line.
+
+ Args:
+ line: Input line
+ start_pos: Starting position
+ width: Width of each field
+
+ Returns:
+ List[int]: List of parsed integers, stopping at first invalid value
+ """
+ numbers = []
+ pos = start_pos
+ while pos + width <= len(line):
+ value = safe_parse(line[pos : pos + width], as_int=True)
+ if value is None:
+ break
+ numbers.append(value)
+ pos += width
+ return numbers
+
+ @classmethod
+ def _parse_spin_groups_and_channels(cls, lines: List[str]) -> Tuple[List[int], Optional[List[int]]]:
+ """Parse spin groups and optional channels from lines.
+
+ Args:
+ lines: List of input lines containing spin groups/channels
+
+ Returns:
+ Tuple containing:
+ - List[int]: Spin group numbers
+ - Optional[List[int]]: Channel numbers if present
+
+ Note:
+ Handles continuation lines (-1 marker) and IX=0 marker for channels
+ """
+ spin_groups = []
+ channels = None
+
+ for line in lines:
+ # Parse numbers 5 columns each starting at position 35
+ numbers = cls._parse_numbers_from_line(line, 35, 5)
+
+ if not numbers:
+ continue
+
+ # Check for continuation marker (-1)
+ if numbers[-1] == -1:
+ spin_groups.extend(numbers[:-1])
+ continue
+
+ # Check for IX=0 marker (indicates channels follow)
+ if 0 in numbers:
+ zero_index = numbers.index(0)
+ spin_groups.extend(numbers[:zero_index])
+ channels = numbers[zero_index + 1 :]
+ break
+
+ spin_groups.extend(numbers)
+
+ return spin_groups, channels
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "RadiusCardAlternate":
+ """Parse radius parameters from fixed-width format lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ RadiusCardAlternate: Parsed card
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Get content lines (skip header and trailing blank)
+ content_lines = [line for line in lines[1:] if line.strip()]
+ if not content_lines:
+ raise ValueError("No parameter lines found")
+
+ # Parse first line for main parameters
+ main_line = content_lines[0]
+
+ # Ensure line is long enough
+ if len(main_line) < 35: # Minimum length for main parameters
+ raise ValueError("Parameter line too short")
+
+ # Parse main parameters
+ params = {
+ "effective_radius": safe_parse(main_line[FORMAT_ALTERNATE["pareff"]]),
+ "true_radius": safe_parse(main_line[FORMAT_ALTERNATE["partru"]]),
+ "channel_mode": safe_parse(main_line[FORMAT_ALTERNATE["ichan"]], as_int=True) or 0,
+ }
+
+ # Parse flags (5-column format)
+ try:
+ params["vary_effective"] = VaryFlag(int(main_line[FORMAT_ALTERNATE["ifleff"]].strip() or "0"))
+ params["vary_true"] = VaryFlag(int(main_line[FORMAT_ALTERNATE["ifltru"]].strip() or "0"))
+ except ValueError:
+ raise ValueError("Invalid vary flags")
+
+ # Parse spin groups and channels
+ spin_groups, channels = cls._parse_spin_groups_and_channels(content_lines)
+
+ if not spin_groups:
+ raise ValueError("No spin groups found")
+
+ params["spin_groups"] = spin_groups
+ params["channels"] = channels
+
+ # Create parameters object
+ try:
+ parameters = RadiusParameters(**params)
+ except ValueError as e:
+ raise ValueError(f"Invalid parameter values: {e}")
+
+ return cls(parameters=parameters)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card to fixed-width format lines.
+
+ Returns:
+ List[str]: Lines including header
+ """
+ lines = [CARD_7_ALT_HEADER]
+
+ # Format main parameters
+ main_parts = [
+ format_float(self.parameters.effective_radius, width=10),
+ format_float(self.parameters.true_radius, width=10),
+ f"{self.parameters.channel_mode:>5}", # 5-column format
+ f"{self.parameters.vary_effective.value:>5}", # 5-column format
+ f"{self.parameters.vary_true.value:>5}", # 5-column format
+ ]
+
+ # Add spin groups (up to 9 per line due to 5-column width)
+ spin_groups = self.parameters.spin_groups
+ spin_group_lines = []
+
+ current_line = []
+ for group in spin_groups:
+ current_line.append(f"{group:>5}") # Right-align in 5 columns
+ if len(current_line) == 9: # Max groups per line
+ spin_group_lines.append("".join(current_line))
+ current_line = []
+
+ # Add any remaining groups
+ if current_line:
+ spin_group_lines.append("".join(current_line))
+
+ # Combine main parameters with first line of spin groups
+ if spin_group_lines:
+ first_line = "".join(main_parts)
+ if len(spin_group_lines[0]) > 0:
+ first_line += spin_group_lines[0]
+ lines.append(first_line)
+
+ # Add remaining spin group lines
+ lines.extend(spin_group_lines[1:])
+
+ # Add channels if present (using 5-column format)
+ if self.parameters.channels:
+ channel_line = f"{0:>5}" # IX=0 marker
+ for channel in self.parameters.channels:
+ channel_line += f"{channel:>5}"
+ lines.append(channel_line)
+
+ # Add trailing blank line
+ lines.append("")
+
+ return lines
+
+
+CARD_7A_HEADER = "RADII are in KEY-WORD format"
+
+
+class RadiusCardKeyword(BaseModel):
+ """Handler for keyword-based radius parameter cards (Card Set 7a).
+
+ This class handles parsing and writing radius parameters in the keyword format.
+ The format offers a more readable alternative to fixed-width formats while
+ maintaining compatibility with RadiusParameters.
+
+ Attributes:
+ parameters: The core radius parameters
+ particle_pair: Optional particle pair specification
+ orbital_momentum: Optional orbital angular momentum values
+ relative_uncertainty: Optional relative uncertainty for radii
+ absolute_uncertainty: Optional absolute uncertainty for radii
+ """
+
+ parameters: RadiusParameters
+ particle_pair: Optional[str] = None
+ orbital_momentum: Optional[List[Union[int, str]]] = None
+ relative_uncertainty: Optional[float] = None
+ absolute_uncertainty: Optional[float] = None
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line."""
+ return "RADII" in line.upper() and "KEY-WORD" in line.upper()
+
+ @staticmethod
+ def _parse_values(value_str: str) -> List[str]:
+ """Parse space/comma separated values."""
+ return [v for v in re.split(r"[,\s]+", value_str.strip()) if v]
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "RadiusCardKeyword":
+ """Parse radius parameters from keyword format lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ RadiusCardKeyword: Parsed card
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Parse parameters for RadiusParameters
+ params = {
+ "effective_radius": None,
+ "true_radius": None,
+ "channel_mode": 0,
+ "vary_effective": VaryFlag.NO,
+ "vary_true": VaryFlag.NO,
+ "spin_groups": [],
+ "channels": None,
+ }
+
+ # Parse keyword format extras
+ extras = {"particle_pair": None, "orbital_momentum": None, "relative_uncertainty": None, "absolute_uncertainty": None}
+
+ # Combine all non-empty lines into single string for parsing
+ text = "\n".join(line for line in lines[1:] if line.strip())
+
+ # Use the new parser
+ data = parse_keyword_pairs_to_dict(text)
+
+ for key, value in data.items():
+ key = key.lower()
+
+ if key == "radius":
+ if isinstance(value, list):
+ params["effective_radius"] = value[0]
+ params["true_radius"] = value[1]
+ else:
+ params["effective_radius"] = value
+ params["true_radius"] = value
+
+ elif key == "flags":
+ if isinstance(value, list):
+ params["vary_effective"] = VaryFlag(value[0])
+ params["vary_true"] = VaryFlag(value[1])
+ else:
+ params["vary_effective"] = VaryFlag(value)
+ params["vary_true"] = VaryFlag(value)
+
+ elif key in ["pp", "particle-pair"]:
+ extras["particle_pair"] = value
+
+ elif key in ["l", "orbital"]:
+ if isinstance(value, list):
+ extras["orbital_momentum"] = [str(v).lower() if isinstance(v, str) else v for v in value]
+ else:
+ extras["orbital_momentum"] = [str(value).lower()]
+
+ elif key == "relative":
+ extras["relative_uncertainty"] = value[0] if isinstance(value, list) else value
+
+ elif key == "absolute":
+ extras["absolute_uncertainty"] = value[0] if isinstance(value, list) else value
+
+ elif key == "channels":
+ params["channels"] = [int(x) for x in value]
+ params["channel_mode"] = 1
+
+ elif key == "group":
+ if isinstance(value, list):
+ params["spin_groups"] = [int(x) for x in value]
+ elif isinstance(value, int):
+ params["spin_groups"] = [value]
+ else:
+ raise ValueError("Invalid group value")
+
+ # Validate required parameters
+ if not params["spin_groups"] and not (extras["particle_pair"] and extras["orbital_momentum"]):
+ raise ValueError("Must specify either spin groups or both particle pair (PP) and orbital momentum (L)")
+
+ # Create RadiusParameters instance
+ try:
+ parameters = RadiusParameters(**params)
+ except ValueError as e:
+ raise ValueError(f"Invalid parameter values: {e}")
+
+ return cls(parameters=parameters, **extras)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card to keyword format lines.
+
+ Returns:
+ List[str]: Lines in keyword format
+ """
+ lines = [CARD_7A_HEADER]
+
+ # Add radius values
+ if self.parameters.true_radius == self.parameters.effective_radius:
+ lines.append(f"Radius= {self.parameters.effective_radius}")
+ else:
+ lines.append(f"Radius= {self.parameters.effective_radius} {self.parameters.true_radius}")
+
+ # Add flags
+ if self.parameters.vary_true == self.parameters.vary_effective:
+ lines.append(f"Flags= {self.parameters.vary_effective.value}")
+ else:
+ lines.append(f"Flags= {self.parameters.vary_effective.value} {self.parameters.vary_true.value}")
+
+ # Add uncertainties if present
+ if self.relative_uncertainty is not None:
+ lines.append(f"Relative= {self.relative_uncertainty}")
+ if self.absolute_uncertainty is not None:
+ lines.append(f"Absolute= {self.absolute_uncertainty}")
+
+ # Add particle pair and orbital momentum if present
+ if self.particle_pair:
+ lines.append(f"PP= {self.particle_pair}")
+ if self.orbital_momentum:
+ lines.append(f"L= {' '.join(str(x) for x in self.orbital_momentum)}")
+
+ # Add group and channel specifications
+ if self.parameters.channel_mode == 1 and self.parameters.channels:
+ for group in self.parameters.spin_groups:
+ lines.append(f"Group= {group} Channels= {' '.join(str(x) for x in self.parameters.channels)}")
+ else:
+ lines.append(f"Group= {' '.join(str(x) for x in self.parameters.spin_groups)}")
+
+ lines.append("") # Trailing blank line
+ return lines
+
+
+class RadiusFormat(Enum):
+ """Supported formats for radius parameter cards."""
+
+ DEFAULT = "default" # Fixed width (<99 spin groups)
+ ALTERNATE = "alternate" # Fixed width (>=99 spin groups)
+ KEYWORD = "keyword" # Keyword based
+
+
+class RadiusCard(BaseModel):
+ """Main handler for SAMMY radius parameter cards.
+
+ This class provides a simple interface for working with radius parameters
+ regardless of format. Users can create parameters directly or read from
+ template files, then write in any supported format.
+
+ Example:
+ # Create new parameters
+ card = RadiusCard(
+ effective_radius=3.2,
+ true_radius=3.2,
+ spin_groups=[1, 2, 3]
+ )
+
+ # Write in desired format
+ lines = card.to_lines(format=RadiusFormat.KEYWORD)
+
+ # Or read from template and modify
+ card = RadiusCard.from_lines(template_lines)
+ card.parameters.effective_radius = 3.5
+ lines = card.to_lines(format=RadiusFormat.DEFAULT)
+ """
+
+ parameters: RadiusParameters
+ # Optional keyword format extras
+ particle_pair: Optional[str] = None
+ orbital_momentum: Optional[List[Union[int, str]]] = None
+ relative_uncertainty: Optional[float] = None
+ absolute_uncertainty: Optional[float] = None
+
+ @classmethod
+ def detect_format(cls, lines: List[str]) -> RadiusFormat:
+ """Detect format from input lines."""
+ if not lines:
+ raise ValueError("No lines provided")
+
+ header = lines[0].strip().upper()
+ if "KEY-WORD" in header:
+ return RadiusFormat.KEYWORD
+ elif "RADIU" in header:
+ # Check format by examining spin group columns
+ content_line = next((l for l in lines[1:] if l.strip()), "") # noqa: E741
+ if len(content_line) >= 35 and content_line[25:30].strip(): # 5-col format
+ return RadiusFormat.ALTERNATE
+ return RadiusFormat.DEFAULT
+
+ raise ValueError("Invalid header format")
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "RadiusCard":
+ """Parse radius card from lines in any format."""
+ format_type = cls.detect_format(lines)
+
+ if format_type == RadiusFormat.KEYWORD:
+ keyword_card = RadiusCardKeyword.from_lines(lines)
+ return cls(
+ parameters=keyword_card.parameters,
+ particle_pair=keyword_card.particle_pair,
+ orbital_momentum=keyword_card.orbital_momentum,
+ relative_uncertainty=keyword_card.relative_uncertainty,
+ absolute_uncertainty=keyword_card.absolute_uncertainty,
+ )
+ elif format_type == RadiusFormat.ALTERNATE:
+ return cls(parameters=RadiusCardAlternate.from_lines(lines).parameters)
+ else:
+ return cls(parameters=RadiusCardDefault.from_lines(lines).parameters)
+
+ def to_lines(self, radius_format: RadiusFormat = RadiusFormat.DEFAULT) -> List[str]:
+ """Write radius card in specified format."""
+ if radius_format == RadiusFormat.KEYWORD:
+ return RadiusCardKeyword(
+ parameters=self.parameters,
+ particle_pair=self.particle_pair,
+ orbital_momentum=self.orbital_momentum,
+ relative_uncertainty=self.relative_uncertainty,
+ absolute_uncertainty=self.absolute_uncertainty,
+ ).to_lines()
+ elif radius_format == RadiusFormat.ALTERNATE:
+ return RadiusCardAlternate(parameters=self.parameters).to_lines()
+ else:
+ return RadiusCardDefault(parameters=self.parameters).to_lines()
+
+ @classmethod
+ def from_values(
+ cls,
+ effective_radius: float,
+ true_radius: Optional[float] = None,
+ spin_groups: List[int] = None,
+ channels: Optional[List[int]] = None,
+ particle_pair: Optional[str] = None,
+ orbital_momentum: Optional[List[Union[int, str]]] = None,
+ relative_uncertainty: Optional[float] = None,
+ absolute_uncertainty: Optional[float] = None,
+ **kwargs,
+ ) -> "RadiusCard":
+ """Create a new radius card from parameter values.
+
+ Args:
+ effective_radius: Radius for potential scattering
+ true_radius: Radius for penetrabilities and shifts (defaults to effective_radius)
+ spin_groups: List of spin group numbers
+ channels: Optional list of channel numbers
+ particle_pair: Optional particle pair specification
+ orbital_momentum: Optional orbital angular momentum values
+ relative_uncertainty: Optional relative uncertainty for radii
+ absolute_uncertainty: Optional absolute uncertainty for radii
+ **kwargs: Additional parameters to pass to RadiusParameters
+
+ Returns:
+ RadiusCard: Created card instance
+ """
+ # Separate parameters and extras
+ params = {
+ "effective_radius": effective_radius,
+ "true_radius": true_radius or effective_radius,
+ "spin_groups": spin_groups or [],
+ "channel_mode": 1 if channels else 0,
+ "channels": channels,
+ }
+ params.update(kwargs) # Only parameter-specific kwargs
+
+ # Create card with both parameters and extras
+ return cls(
+ parameters=RadiusParameters(**params),
+ particle_pair=particle_pair,
+ orbital_momentum=orbital_momentum,
+ relative_uncertainty=relative_uncertainty,
+ absolute_uncertainty=absolute_uncertainty,
+ )
+
+
+if __name__ == "__main__":
+ # Example usage
+ card = RadiusCard.from_values(effective_radius=3.2, true_radius=3.2, spin_groups=[1, 2, 3])
+ lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\n".join(lines))
+ print("Format:", RadiusCard.detect_format(lines))
+ print("Parsed card:", RadiusCard.from_lines(lines))
diff --git a/src/pleiades/sammy/parameters/resonance.py b/src/pleiades/sammy/parameters/resonance.py
new file mode 100644
index 0000000..fc10cad
--- /dev/null
+++ b/src/pleiades/sammy/parameters/resonance.py
@@ -0,0 +1,174 @@
+#!/usr/bin/env python
+"""Data class for card 01::resonance."""
+
+import logging
+from typing import Optional
+
+from pydantic import BaseModel, Field
+
+from pleiades.sammy.parameters.helper import VaryFlag, safe_parse
+
+# setup logging
+logger = logging.getLogger(__name__)
+
+
+# Define format constants
+RESONANCE_FORMAT = {
+ "resonance_energy": slice(0, 11),
+ "capture_width": slice(11, 22),
+ "channel1_width": slice(22, 33),
+ "channel2_width": slice(33, 44),
+ "channel3_width": slice(44, 55),
+ "vary_energy": slice(55, 57),
+ "vary_capture_width": slice(57, 59),
+ "vary_channel1": slice(59, 61),
+ "vary_channel2": slice(61, 63),
+ "vary_channel3": slice(63, 65),
+ "igroup": slice(65, 67),
+ "x_value": slice(67, 80), # Added to detect special cases
+}
+
+
+class UnsupportedFormatError(ValueError):
+ """Error raised when encountering unsupported format features."""
+
+ pass
+
+
+class ResonanceEntry(BaseModel):
+ """Single resonance entry for SAMMY parameter file (strict format)"""
+
+ resonance_energy: float = Field(description="Resonance energy Eλ (eV)")
+ capture_width: float = Field(description="Capture width Γγ (milli-eV)")
+ channel1_width: Optional[float] = Field(None, description="Particle width for channel 1 (milli-eV)")
+ channel2_width: Optional[float] = Field(None, description="Particle width for channel 2 (milli-eV)")
+ channel3_width: Optional[float] = Field(None, description="Particle width for channel 3 (milli-eV)")
+
+ vary_energy: VaryFlag = Field(default=VaryFlag.NO)
+ vary_capture_width: VaryFlag = Field(default=VaryFlag.NO)
+ vary_channel1: VaryFlag = Field(default=VaryFlag.NO)
+ vary_channel2: VaryFlag = Field(default=VaryFlag.NO)
+ vary_channel3: VaryFlag = Field(default=VaryFlag.NO)
+
+ igroup: int = Field(description="Quantum numbers group number")
+
+ @classmethod
+ def from_str(cls, line: str) -> "ResonanceEntry":
+ """Parse a resonance entry from a fixed-width format line"""
+ if not line.strip():
+ raise ValueError("Empty line provided")
+
+ # Make sure line is at least 80 characters
+ line = f"{line:<80}"
+
+ # Check for special cases we don't support
+ x_value = line[RESONANCE_FORMAT["x_value"]].strip()
+
+ if x_value:
+ try:
+ x_float = float(x_value)
+ if x_float < 0:
+ raise UnsupportedFormatError(
+ "SORRY! While SAMMY allows multi-line resonance entries (indicated by negative "
+ "X value in columns 68-80), this implementation does not support this feature yet."
+ )
+ except UnsupportedFormatError:
+ raise # Reraise the error
+ except ValueError as e:
+ logger.error(f"Failed to parse X value: {e}")
+ pass
+
+ params = {}
+
+ # Parse each field according to format (excluding x_value)
+ for field, slice_obj in RESONANCE_FORMAT.items():
+ if field == "x_value": # Skip X value in parsing
+ continue
+
+ value = line[slice_obj].strip()
+
+ if value: # Only process non-empty fields
+ if field.startswith("vary_"):
+ try:
+ params[field] = VaryFlag(int(value))
+ except (ValueError, TypeError):
+ params[field] = VaryFlag.NO
+ elif field == "igroup":
+ params[field] = safe_parse(value, as_int=True) or 1
+ else:
+ parsed_value = safe_parse(value)
+ if parsed_value is not None:
+ params[field] = parsed_value
+
+ return cls(**params)
+
+ def to_str(self) -> str:
+ """Convert the resonance entry to fixed-width format string"""
+ line = " " * 80
+
+ def format_float(value: Optional[float]) -> str:
+ if value is None:
+ return " " * 11
+ return f"{value:11.4E}"
+
+ def format_vary(value: VaryFlag) -> str:
+ return f"{value.value:2d}"
+
+ updates = {
+ "resonance_energy": format_float(self.resonance_energy),
+ "capture_width": format_float(self.capture_width),
+ "channel1_width": format_float(self.channel1_width),
+ "channel2_width": format_float(self.channel2_width),
+ "channel3_width": format_float(self.channel3_width),
+ "vary_energy": format_vary(self.vary_energy),
+ "vary_capture_width": format_vary(self.vary_capture_width),
+ "vary_channel1": format_vary(self.vary_channel1),
+ "vary_channel2": format_vary(self.vary_channel2),
+ "vary_channel3": format_vary(self.vary_channel3),
+ "igroup": f"{self.igroup:2d}",
+ }
+
+ for field, formatted_value in updates.items():
+ slice_obj = RESONANCE_FORMAT[field]
+ line = f"{line[:slice_obj.start]}{formatted_value}{line[slice_obj.stop:]}"
+
+ return line.rstrip()
+
+
+if __name__ == "__main__":
+ # Enable logging for debugging
+ logging.basicConfig(level=logging.DEBUG)
+ # Test with regular cases
+ good_examples = [
+ "-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1",
+ "-8.7373E+05 1.0253E+03 1.0151E+02 0 0 1 1",
+ ]
+
+ logging.debug("**Testing valid formats**")
+ for i, line in enumerate(good_examples):
+ entry = ResonanceEntry.from_str(line)
+ logging.debug(f"Example {i+1}:")
+ logging.debug(f"Original: {line}")
+ logging.debug(f"Parsed: {entry}")
+ logging.debug(f"Reformatted: {entry.to_str()}")
+
+ # Test with special case (should raise error)
+ logging.debug("**Testing unsupported format**")
+ try:
+ # Make sure the negative value is properly aligned in columns 68-80
+ bad_line = "-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1 -1.234"
+ logging.debug(f"Testing line: '{bad_line}'")
+ logging.debug(f"Length before padding: {len(bad_line)}")
+ ResonanceEntry.from_str(bad_line)
+ except UnsupportedFormatError as e:
+ logging.debug("Caught expected error for unsupported format:")
+ logging.debug(str(e))
+
+ # Let's also try with a malformed line to make sure our padding doesn't hide issues
+ logging.debug("**Testing malformed format**")
+ try:
+ malformed_line = "-3.6616E+06 1.5877E+05 3.6985E+09 -1.234" # Clearly wrong format
+ ResonanceEntry.from_str(malformed_line)
+ logging.debug("No error raised for malformed format!")
+ except ValueError as e:
+ logging.debug("Caught expected error for malformed line:", str(e))
diff --git a/src/pleiades/sammy/parameters/unused_var.py b/src/pleiades/sammy/parameters/unused_var.py
new file mode 100644
index 0000000..a02fb7f
--- /dev/null
+++ b/src/pleiades/sammy/parameters/unused_var.py
@@ -0,0 +1,239 @@
+#!/usr/bin/env python
+"""Data class for card 05::unused but correlated variables."""
+
+import logging
+from typing import List
+
+from pydantic import BaseModel, Field, model_validator
+
+from pleiades.sammy.parameters.helper import safe_parse
+
+# Format definitions for fixed-width fields
+# Name line has 8 possible 5-character fields separated by 5 spaces
+FORMAT_NAMES = {f"name{i}": slice(i * 10, i * 10 + 5) for i in range(8)}
+
+# Value line has 8 possible 10-character fields
+FORMAT_VALUES = {f"value{i}": slice(i * 10, (i + 1) * 10) for i in range(8)}
+
+CARD_5_HEADER = "UNUSEd but correlated variables come next"
+
+
+class UnusedVariable(BaseModel):
+ """Container for a single unused but correlated variable.
+
+ Contains:
+ - name: 5-character name of the variable
+ - value: Numerical value of the variable
+ """
+
+ name: str = Field(description="Name of the unused variable (5 chars)")
+ value: float = Field(description="Value of the unused variable")
+
+ @model_validator(mode="after")
+ def validate_name_length(self) -> "UnusedVariable":
+ """Validate that name is exactly 5 characters."""
+ if len(self.name) != 5:
+ self.name = f"{self.name:<5}" # Pad with spaces if needed
+ return self
+
+
+class UnusedCorrelatedParameters(BaseModel):
+ """Container for a set of unused but correlated variables.
+
+ Contains:
+ - variables: List of UnusedVariable objects
+ """
+
+ variables: List[UnusedVariable] = Field(default_factory=list)
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "UnusedCorrelatedParameters":
+ """Parse unused correlated parameters from pairs of name/value lines.
+
+ Args:
+ lines: List of input lines (excluding header)
+
+ Returns:
+ UnusedCorrelatedParameters: Parsed parameters
+
+ Raises:
+ ValueError: If lines are invalid or required data is missing
+ """
+ if not lines or len(lines) < 2:
+ raise ValueError("At least one pair of name/value lines required")
+
+ variables = []
+
+ # Process pairs of lines (names followed by values)
+ for i in range(0, len(lines), 2):
+ if i + 1 >= len(lines):
+ break
+
+ name_line = f"{lines[i]:<80}" # Pad to full width
+ value_line = f"{lines[i+1]:<80}"
+
+ # Extract all non-empty names and corresponding values
+ for j in range(8):
+ name = name_line[FORMAT_NAMES[f"name{j}"]].strip()
+ if name:
+ value_str = value_line[FORMAT_VALUES[f"value{j}"]].strip()
+ value = safe_parse(value_str)
+ if value is not None:
+ variables.append(UnusedVariable(name=name, value=value))
+
+ return cls(variables=variables)
+
+ def to_lines(self) -> List[str]:
+ """Convert the parameters to a list of fixed-width format lines.
+
+ Returns:
+ List[str]: Lines representing the parameters
+ """
+ lines = []
+
+ # Process variables in groups of 8
+ for i in range(0, len(self.variables), 8):
+ group = self.variables[i : i + 8]
+
+ # Format name line
+ names = [""] * 8
+ for j, var in enumerate(group):
+ names[j] = f"{var.name:<5}"
+ name_line = " ".join(names).rstrip()
+ lines.append(name_line)
+
+ # Format value line
+ values = [" "] * 8 # 10 spaces each
+ for j, var in enumerate(group):
+ values[j] = f"{var.value:10.4E}"
+ value_line = "".join(values[: len(group)])
+ lines.append(value_line)
+
+ return lines
+
+
+class UnusedCorrelatedCard(BaseModel):
+ """Container for a complete unused correlated variable card set (Card Set 5).
+
+ This class handles a complete card set, including:
+ - Header line
+ - Parameter entries
+ - Trailing blank line
+ """
+
+ parameters: UnusedCorrelatedParameters
+
+ @classmethod
+ def is_header_line(cls, line: str) -> bool:
+ """Check if line is a valid header line.
+
+ Args:
+ line: Input line to check
+
+ Returns:
+ bool: True if line is a valid header
+ """
+ return line.strip().upper().startswith("UNUSE")
+
+ @classmethod
+ def from_lines(cls, lines: List[str]) -> "UnusedCorrelatedCard":
+ """Parse a complete card set from lines.
+
+ Args:
+ lines: List of input lines including header
+
+ Returns:
+ UnusedCorrelatedCard: Parsed card set
+
+ Raises:
+ ValueError: If no valid header found or invalid format
+ """
+ if not lines:
+ raise ValueError("No lines provided")
+
+ # Validate header
+ if not cls.is_header_line(lines[0]):
+ raise ValueError(f"Invalid header line: {lines[0]}")
+
+ # Parse parameters (skip header and trailing blank lines)
+ content_lines = [line for line in lines[1:] if line.strip()]
+ if not content_lines:
+ raise ValueError("No parameter lines found")
+
+ parameters = UnusedCorrelatedParameters.from_lines(content_lines)
+ return cls(parameters=parameters)
+
+ def to_lines(self) -> List[str]:
+ """Convert the card set to a list of lines.
+
+ Returns:
+ List[str]: Lines including header and parameters
+ """
+ lines = [CARD_5_HEADER]
+ lines.extend(self.parameters.to_lines())
+ lines.append("") # Trailing blank line
+ return lines
+
+
+if __name__ == "__main__":
+ # Enable logging for debugging
+ logging.basicConfig(level=logging.DEBUG)
+
+ # Test example with two groups of variables
+ logging.debug("**Testing variable parsing**")
+ test_lines = [
+ (" " * 5).join([f"NVAR{i}" for i in range(1, 4)]),
+ "1.2304E+002.9800E+021.5000E-01",
+ (" " * 5).join([f"NVAR{i}" for i in range(4, 6)]),
+ "2.5000E-021.0000E+00",
+ ]
+
+ try:
+ params = UnusedCorrelatedParameters.from_lines(test_lines)
+ logging.debug("Successfully parsed parameters:")
+ for var in params.variables:
+ logging.debug(f"{var.name}: {var.value}")
+ logging.debug("\nOutput lines:")
+ for line in params.to_lines():
+ logging.debug(f"'{line}'")
+ logging.debug("")
+ except ValueError as e:
+ logging.error(f"Failed to parse parameters: {e}")
+
+ # Test complete card set
+ logging.debug("**Testing complete card set**")
+ card_lines = [
+ "UNUSEd but correlated variables come next",
+ (" " * 5).join([f"NVAR{i}" for i in range(1, 4)]),
+ "1.2340E+002.9800E+021.5000E-01 ",
+ (" " * 5).join([f"NVAR{i}" for i in range(4, 6)]),
+ "2.5000E-021.0000E+00",
+ "",
+ ]
+
+ try:
+ card = UnusedCorrelatedCard.from_lines(card_lines)
+ logging.debug("Successfully parsed complete card set")
+ logging.debug("Output lines:")
+ for line in card.to_lines():
+ logging.debug(f"'{line}'")
+ except ValueError as e:
+ logging.error(f"Failed to parse complete card set: {e}")
+
+ # Test error handling
+ logging.debug("\n**Testing Error Handling**")
+
+ # Test invalid header
+ try:
+ bad_lines = ["WRONG header line", "NVAR1", "1.2340E+00", ""]
+ logging.debug("Testing invalid header:")
+ UnusedCorrelatedCard.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for invalid header: {e}")
+
+ # Test mismatched name/value lines
+ try:
+ bad_lines = ["NVAR1 NVAR2", "1.2340E+00"] # Missing value
+ UnusedCorrelatedParameters.from_lines(bad_lines)
+ except ValueError as e:
+ logging.debug(f"Caught expected error for mismatched lines: {e}")
diff --git a/src/pleiades/sammy/parfile.py b/src/pleiades/sammy/parfile.py
new file mode 100644
index 0000000..369ba2e
--- /dev/null
+++ b/src/pleiades/sammy/parfile.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+"""Top level parameter file handler for SAMMY."""
+
+from typing import Optional
+
+from pydantic import BaseModel, Field
+
+from pleiades.sammy.parameters import (
+ BroadeningParameterCard,
+ ExternalREntry,
+ NormalizationBackgroundCard,
+ ResonanceEntry,
+ UnusedCorrelatedCard,
+)
+
+
+class SammyParameterFile(BaseModel):
+ """Top level parameter file for SAMMY."""
+
+ resonance: ResonanceEntry = Field(description="Resonance parameters")
+ fudge: float = Field(0.1, description="Fudge factor", ge=0.0, le=1.0)
+ # Add additional optional cards
+ external_r: Optional[ExternalREntry] = Field(None, description="External R matrix")
+ broadening: Optional[BroadeningParameterCard] = Field(None, description="Broadening parameters")
+ unused_correlated: Optional[UnusedCorrelatedCard] = Field(None, description="Unused but correlated variables")
+ normalization: Optional[NormalizationBackgroundCard] = Field(None, description="Normalization and background parameters")
+
+ @classmethod
+ def from_file(cls, file_path):
+ """Load a SAMMY parameter file from disk."""
+ with open(file_path, "r") as f:
+ lines = f.readlines()
+
+ # Parse resonance card
+ resonance = ResonanceEntry.from_str(lines[0])
+
+ return cls(resonance=resonance)
+
+
+if __name__ == "__main__":
+ print("TODO: usage example for SAMMY parameter file handling")
diff --git a/src/pleiades/utils/__init__.py b/src/pleiades/utils/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/data/config/sammy_runner.yaml b/tests/data/config/sammy_runner.yaml
new file mode 100644
index 0000000..55b73e2
--- /dev/null
+++ b/tests/data/config/sammy_runner.yaml
@@ -0,0 +1,18 @@
+backend: docker
+working_dir: {working_dir}
+output_dir: {output_dir}
+
+local:
+ sammy_executable: sammy
+ shell_path: /bin/bash
+
+docker:
+ image_name: kedokudo/sammy-docker
+ container_working_dir: /sammy/work
+ container_data_dir: /sammy/data
+
+nova:
+ url: ${NOVA_URL}
+ api_key: ${NOVA_API_KEY}
+ tool_id: neutrons_imaging_sammy
+ timeout: 3600
diff --git a/tests/data/ex012/README.FIRST b/tests/data/ex012/README.FIRST
new file mode 100755
index 0000000..83fb709
--- /dev/null
+++ b/tests/data/ex012/README.FIRST
@@ -0,0 +1,64 @@
+##########################################################################
+### PURPOSE of Exercise EX012: Learn to treat multiple nuclides in a sample
+
+
+### DESCRIPTION:
+
+ In a real experiment, the sample usually contains more than one
+ nuclide. There may be several isotopes of the same element, the
+ sample may be an oxide or other chemical compound, or there may be
+ contaminants.
+
+ The treatment for all of these is the same: Include spin groups and
+ resonance parameters for any and all nuclides. Assign the
+ appropriate abundances for each nuclide; search for the correct
+ values of the abundances if needed.
+
+
+### INSTRUCTIONS:
+
+(1) File ex012a.dat is "real data" for transmission through natural
+ silicon, taken on the 200-meter flight path at ORELA. In the INPut
+ file (ex012a.inp), spin groups 1 through 7 correspond to Si28, 8-17 to
+ Si29, and 18-22 to Si30. Spin groups 23-29, which correspond to
+ Oxygen-16, are defined, but do not enter into this calculation (the
+ "X" in column 5 for those spin groups means that these are to be
+ eXcluded); oxygen is included in the INPut and PARameter files because
+ the complete analysis used data on Si29- and Si30-oxide samples.
+ (Those data are not included in this exercise.)
+
+ Note that the resonances in the parameter file ex012a.par are grouped
+ by nuclide, not by energy. This is the analyst's choice -- SAMMY has
+ no requirements regarding the ordering of the resonances in the PAR
+ file.
+
+ Two Card Sets at the end of the PAR file give more information about
+ the spin groups and/or nuclides. The "radius" Card Set defines the
+ radii for the odd and even el-values of Si28, for Si29, for Si30, and
+ for Oxygen. The "isotopic masses and abundances" Card Set provides
+ masses (in amu) and abundances (relative by weight) for the four
+ nuclides. Some of this information is also given in the INP file;
+ however, the PAR file values take precedent. In other words, values
+ given in the PAR file are the ones which will be used. (This is
+ almost always true; there are, however, some cases in which a flag of
+ "-2" tells SAMMY to use the value from the INPut file.)
+
+ SAMMY does require consistency between the two Card Sets, in the sense
+ that spin groups which have the same radius must also belong to the
+ same nuclide. E.g., spin groups 1 and 4 both belong to Si28. Spin
+ groups 18 and 23, which belong to Si30 and Oxygen, respectively, must
+ have separate radii defined even though the two have the same value
+ (4.2 Fermi).
+
+ Run this case; see answers/ex012a* for results. Note that the initial
+ values of the abundance for Si28 was wrong, but the SAMMY run provided
+ a more reasonable result.
+
+(2) An easy way to study the contribution from just one isotope (or
+ nuclide or spin group) is to "X" the other spin groups. Play around
+ with this -- what is the contribution due only to Si28, for example?
+ How about s-waves only?
+
+ See answers/ex012b* for Si28 p waves.
+
+##########################################################################
diff --git a/tests/data/ex012/answers/aa b/tests/data/ex012/answers/aa
new file mode 100755
index 0000000..3204721
--- /dev/null
+++ b/tests/data/ex012/answers/aa
@@ -0,0 +1,7 @@
+par ex012aa.par
+odf ex012aa.odf
+ops 1 1 1 1 1 1
+x
+1 dtb 800.,1100.
+
+q
diff --git a/tests/data/ex012/answers/ab b/tests/data/ex012/answers/ab
new file mode 100755
index 0000000..664a7e0
--- /dev/null
+++ b/tests/data/ex012/answers/ab
@@ -0,0 +1,8 @@
+par ex012a.par
+odf ex012bb.odf
+ops 1 1 1 1 1 1
+avg 6
+x
+1 dt 300.,1800.
+
+q
diff --git a/tests/data/ex012/answers/ex012aa.lpt b/tests/data/ex012/answers/ex012aa.lpt
new file mode 100755
index 0000000..4ac08be
--- /dev/null
+++ b/tests/data/ex012/answers/ex012aa.lpt
@@ -0,0 +1,653 @@
+
+ **********************************************************
+ *** ***
+ *** SAMMY Version 8.0.0 ***
+ *** ***
+ **********************************************************
+
+ Name of input file:
+ >>> ex012a.inp <<<
+ Name of parameter file:
+ >>> ex012a.par <<<
+ Values used for constants -- Kvendf=1
+ mass of neutron = 1.008664915600000 in amu
+ sqrt(m/2) = 72.298252179105063
+ sqrt(2m)/hbar = 0.000219680775849
+ Boltzman = 0.000086173430000
+ finestructure = 0.034447599938334 in 1/(amu*F)
+ GENERATE ODF FILE AUtomatically
+ Name of experimental data file is:
+ >>> ex012a.dat <<<
+ Emin and Emax = 300000. 1.800000E+06
+
+
+ *****************************************************************************
+ ***** *****
+ ***** example ex012: multiple nuclides (Natural Si -- 200 m flight pat *****
+ ***** h) *****
+ *****************************************************************************
+
+
+ Input quantities from line number 2 are:
+ Alfnm1, Alfnm2 = ##Si ## Atomic Weight = 27.976928
+ Nepnts Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 0 0 0 0 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+Adjusted Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 50 0 9 5 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+
+
+ TARGET ELEMENT IS Si
+ ATOMIC WEIGHT IS 27.976928
+
+
+ *********** Alphanumeric Control Information *********
+
+ CSISRS
+ CHI SQUARED IS WANTED
+ DO NOT SUPPRESS ANY intermediate results
+ ODF FILE IS WANTED--SAMMY.ODF ,ZERO-TH O
+ PRINT BAYES CHI SQUARED
+ SOLVE BAYES EQUATIONS
+ PRINT VARIED INPUT PARAMETERS
+
+ **** end of Alphanumeric Control Information *********
+
+
+ ### Estimated array size for SAMMY-INP is 5799 ###
+
+ Effective Temperature= 300.00000
+ Flight Path= 200.00000 Meters +/- 0.18223/2 Meters
+ Deltae= 0.00000 Deltag= 0.00252
+ Delttt= 0.00000 Elowbr= 0.00000000
+
+ Target Thickness= 0.3472
+
+ **** Data type is <<< TRANSMISSION >>> ****
+
+ Spin of incident particle is 0.5
+ #of #of
+ Group Ent Exit Jspin Relative Ispin g Chn Lpnt Ishift eL Chspn
+ # Chn Chn Abndnc #
+ 1 1 1 0.5 0.9223 0.0 1.0000
+ 1 1 0 0 0.5
+ 2 1 0 2 1.5
+ 2 1 1 -0.5 0.9223 0.0 1.0000
+ 1 1 0 1 0.5
+ 2 1 0 1 0.5
+ 3 1 1 -1.5 0.9223 0.0 2.0000
+ 1 1 0 1 0.5
+ 2 1 0 1 0.5
+ 4 1 2 1.5 0.9223 0.0 2.0000
+ 1 1 0 2 0.5
+ 2 1 0 2 0.5
+ 3 1 0 0 1.5
+ 5 1 2 2.5 0.9223 0.0 3.0000
+ 1 1 0 2 0.5
+ 2 1 0 2 0.5
+ 3 1 0 0 2.5
+ 6 1 2 -2.5 0.9223 0.0 3.0000
+ 1 1 0 3 0.5
+ 2 1 0 3 0.5
+ 3 1 0 1 2.5
+ 7 1 2 -3.5 0.9223 0.0 4.0000
+ 1 1 0 3 0.5
+ 2 1 0 3 0.5
+ 3 1 0 1 2.5
+ 8 1 0 0.0 0.0467 0.5 0.2500
+ 1 1 0 0 0.0
+ 9 1 0 1.0 0.0467 0.5 0.7500
+ 1 1 0 0 1.0
+ 10 1 0 -1.0 0.0467 0.5 0.7500
+ 1 1 0 1 0.0
+ 11 1 0 0.0 0.0467 0.5 0.2500
+ 1 1 0 1 1.0
+ 12 1 0 -1.0 0.0467 0.5 0.7500
+ 1 1 0 1 1.0
+ 13 1 0 -2.0 0.0467 0.5 1.2500
+ 1 1 0 1 1.0
+ 14 1 0 2.0 0.0467 0.5 1.2500
+ 1 1 0 2 0.0
+ 15 1 0 1.0 0.0467 0.5 0.7500
+ 1 1 0 2 1.0
+ 16 1 0 2.0 0.0467 0.5 1.2500
+ 1 1 0 2 1.0
+ 17 1 0 3.0 0.0467 0.5 1.7500
+ 1 1 0 2 1.0
+ 18 1 0 0.5 0.0310 0.0 1.0000
+ 1 1 0 0 0.5
+ 19 1 0 -0.5 0.0310 0.0 1.0000
+ 1 1 0 1 0.5
+ 20 1 0 -1.5 0.0310 0.0 2.0000
+ 1 1 0 1 0.5
+ 21 1 0 1.5 0.0310 0.0 2.0000
+ 1 1 0 2 0.5
+ 22 1 0 2.5 0.0310 0.0 3.0000
+ 1 1 0 2 0.5
+ 23 1 0 0.5 2.0000 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 0 0.5
+ 24 1 0 -0.5 2.0000 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 25 1 0 -1.5 2.0000 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 26 1 0 1.5 2.0000 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 27 1 0 2.5 2.0000 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 28 1 0 -2.5 2.0000 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+ 29 1 0 -3.5 2.0000 0.0 4.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+
+__________________________
+ group channel Enbnd Echan z1 z2 m1 m2
+ 1 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 2 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 4 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 5 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 6 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 7 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 8 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 9 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 10 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 11 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 12 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 13 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 14 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 15 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 16 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 17 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 18 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 19 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 20 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 21 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 22 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 23 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 24 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 25 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 26 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 27 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 28 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 29 1 0.00000 0.00000 0 0 16.000000 1.008665
+__________________________
+
+ ### Array size used for SAMMY-INP is 6829 ###
+ ### Estimated array size for SAMMY-PAR is 8010 ###
+
+ Total number of resonances is 162
+ Number of particle channels is 3
+ Number of spin groups is 29
+ Number of flagged parametrs is 5
+ Number of varied parameters is 5
+ Number of nuclides is 4
+ ### Array size used for SAMMY-PAR is 8115 ###
+ ### Estimated array size for SAMMY-NEW is 6491 ###
+
+
+
+
+ ***** INITIAL VALUES FOR PARAMETERS
+
+ SPIN GROUP NUMBER 1 WITH SPIN= 0.5, ABUNDANCE= 1.0000( 3), AND G= 1.0000
+ effective radius = 4.1364E+00 4.1364E+00
+ "true" radius = 4.1364E+00 4.1364E+00
+ ENERGY GAMMA- GAMMA- GAMMA-
+ GAMMA Inc Chan PPair #2
+ L=0 SPIN= 0.5 L=2 SPIN= 1.5
+ (eV) (MILLI-EV) (MILLI-EV) (MILLI-EV)
+ -3.66160E+06 1.5877E+05 3.6985E+09( 1) 0.0000E+00
+ -8.73730E+05 1.0253E+03 1.0151E+02( 2) 0.0000E+00
+
+
+ EFFECTIVE RADIUS "TRUE" RADIUS SPIN GROUP NUMBER FOR THESE RADII
+ # channel numbers
+ 4.1364200 4.1364200 1 # 1 2 3
+ 4 # 1 2 3
+ 5 # 1 2 3
+ 4.9437200 4.9437200 2 # 1 2 3
+ 3 # 1 2 3
+ 6 # 1 2 3
+ 7 # 1 2 3
+ 4.4000000 4.4000000 8 # 1 2 3
+ 9 # 1 2 3
+ 10 # 1 2 3
+ 11 # 1 2 3
+ 12 # 1 2 3
+ 13 # 1 2 3
+ 14 # 1 2 3
+ 15 # 1 2 3
+ 16 # 1 2 3
+ 17 # 1 2 3
+ 4.2000000 4.2000000 18 # 1 2 3
+ 19 # 1 2 3
+ 20 # 1 2 3
+ 21 # 1 2 3
+ 22 # 1 2 3
+ 4.2000000 4.2000000 23 # 1 2 3
+ 24 # 1 2 3
+ 25 # 1 2 3
+ 26 # 1 2 3
+ 27 # 1 2 3
+ 28 # 1 2 3
+ 29 # 1 2 3
+
+
+ Isotopic abundance and mass for each nuclide --
+ Nuclide Abundance Mass Spin groups
+ 1 1.000 ( 3) 27.9769 1 2 3 4 5 6 7
+ 2 4.6700E-02( 4) 28.9765 8 9 10 11 12 13 14 15 16 17
+ 3 3.1000E-02( 5) 29.9738 18 19 20 21 22
+ 4 1.000 16.0000 23 24 25 26 27 28 29
+
+
+ TEMPERATURE THICKNESS
+ 3.0000E+02 3.4716E-01
+
+ DELTA-L DELTA-T-GAUS DELTA-T-EXP
+ 1.8223E-01 2.5180E-03 0.0000E+00
+
+
+
+ ***** CORRELATION MATRIX FOR INPUT PARAMETERS
+
+ ***** STANDARD DEVIATION (SQRT OF DIAGONAL OF COV MATRX)
+
+ STD. DEV. STD. DEV. STD. DEV. STD. DEV.
+ ( 1) 3.6985E+08 ( 2) 10.15 ( 3) 0.9200 ( 4) 5.0000E-02
+ ( 5) 2.0000E-02
+
+ ### Array size used for SAMMY-NEW is 6979 ###
+ Emin 300000. is less than the minimum energy in the data set
+ Emin has been changed to 300001.
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emax 1.800000E+06 is greater than the maximum energy in the data set
+ Emax has been changed to 1.799868E+06
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emind Emins Eminr Emin
+ 298650.6726016077 298871.5528528391 298871.5528528391 300000.6537499999
+ Emax Emaxr Emaxs Emaxd
+ 1799868.1037500002 1807023.7054032285 1807023.7054032285 1807566.9675226703
+
+ DOPPLER WIDTHS
+ Nuclide Doppler Width (eV) Doppler FWHM (eV)
+ Number at Emin at Emax at Emin at Emax
+ 1 33.4435 81.9164 55.6871 136.400
+ 2 32.8616 80.4912 54.7182 134.027
+ 3 32.3103 79.1408 53.8002 131.778
+ 4 44.2234 108.321 73.6367 180.366
+
+ Gaussian Resolution Width at Emin = 225.820 and at Emax = 1431.12
+
+ E(keV) Dopp_FWHM(keV) Resol_FWHM(keV) Both_FWHM(keV)
+ 300.000654 0.0736 0.3760 0.3832
+ 1049.934379 0.1378 1.3535 1.3605
+ 1799.868104 0.1804 2.3830 2.3898
+
+ ### Estimated array size for SAMMY-DAT is 32437024 + 32500000 ###
+
+ Energy range of data is from 3.00001E+05 to 1.79987E+06 eV.
+ Number of experimental data points = 15736
+
+
+ ** 30 resonances have fewer than 9 points across width
+ Number of points in auxiliary grid = 16630
+ ### Array size used for SAMMY-DAT is 32437021 + 32500000 ###
+ ### Estimated array size for SAMMY-THE is 86195 ###
+ Number of parameters affected by this data set= 5
+ ### Array size used for SAMMY-THE is 86194 ###
+ ### Estimated array size for SAMMY-XCT is 360200 ###
+ ### Array size used for SAMMY-XCT is 354090 ###
+ ### Estimated array size for SAMMY-FGM is 387349 ###
+ ### Array size used for SAMMY-FGM is 387349 ###
+ ### Estimated array size for SAMMY-RSL is 437034 ###
+ ### Array size used for SAMMY-RSL is 420445 ###
+ ### Estimated array size for SAMMY-INT is 386458 ###
+ ### Array size used for SAMMY-INT is 386459 ###
+ ### Estimated array size for SAMMY-SQU is 354124 ###
+ ### Array size used for SAMMY-SQU is 354124 ###
+ ### Estimated array size for SAMMY-IPQ is 354089 ###
+
+ CUSTOMARY CHI SQUARED = 188355.
+ CUSTOMARY CHI SQUARED DIVIDED BY NDAT = 11.9697
+
+ BAYESIAN CHI SQUARED = 53736.0
+ BAYESIAN CHI SQUARED DIVIDED BY NDAT = 3.41485
+ ### Array size used for SAMMY-IPQ is 251621 ###
+ ### Estimated array size for SAMMY-FIN is 204449 ###
+
+
+
+
+ ***** INTERMEDIATE VALUES FOR RESONANCE PARAMETERS
+
+ SPIN GROUP NUMBER 1 WITH SPIN= 0.5, ABUNDANCE= 0.9266( 3), AND G= 1.0000
+ effective radius = 4.1364E+00 4.1364E+00
+ "true" radius = 4.1364E+00 4.1364E+00
+ ENERGY GAMMA- GAMMA- GAMMA-
+ GAMMA Inc Chan PPair #2
+ L=0 SPIN= 0.5 L=2 SPIN= 1.5
+ (eV) (MILLI-EV) (MILLI-EV) (MILLI-EV)
+ -3.66160E+06 1.5877E+05 4.1011E+09( 1) 0.0000E+00
+ -8.73730E+05 1.0253E+03 1.0151E+02( 2) 0.0000E+00
+
+
+ EFFECTIVE RADIUS "TRUE" RADIUS SPIN GROUP NUMBER FOR THESE RADII
+ # channel numbers
+ 4.1364200 4.1364200 1 # 1 2 3
+ 4 # 1 2 3
+ 5 # 1 2 3
+ 4.9437200 4.9437200 2 # 1 2 3
+ 3 # 1 2 3
+ 6 # 1 2 3
+ 7 # 1 2 3
+ 4.4000000 4.4000000 8 # 1 2 3
+ 9 # 1 2 3
+ 10 # 1 2 3
+ 11 # 1 2 3
+ 12 # 1 2 3
+ 13 # 1 2 3
+ 14 # 1 2 3
+ 15 # 1 2 3
+ 16 # 1 2 3
+ 17 # 1 2 3
+ 4.2000000 4.2000000 18 # 1 2 3
+ 19 # 1 2 3
+ 20 # 1 2 3
+ 21 # 1 2 3
+ 22 # 1 2 3
+ 4.2000000 4.2000000 23 # 1 2 3
+ 24 # 1 2 3
+ 25 # 1 2 3
+ 26 # 1 2 3
+ 27 # 1 2 3
+ 28 # 1 2 3
+ 29 # 1 2 3
+
+
+ Isotopic abundance and mass for each nuclide --
+ Nuclide Abundance Mass Spin groups
+ 1 0.9266 ( 3) 27.9769 1 2 3 4 5 6 7
+ 2 3.9490E-02( 4) 28.9765 8 9 10 11 12 13 14 15 16 17
+ 3 2.2304E-02( 5) 29.9738 18 19 20 21 22
+ 4 1.000 16.0000 23 24 25 26 27 28 29
+
+
+ TEMPERATURE THICKNESS
+ 3.0000E+02 3.4716E-01
+
+ DELTA-L DELTA-T-GAUS DELTA-T-EXP
+ 1.8223E-01 2.5180E-03 0.0000E+00
+ ### Array size used for SAMMY-FIN is 204459 ###
+ ### Estimated array size for SAMMY-THE is 102105 ###
+ Number of parameters affected by this data set= 5
+ ### Array size used for SAMMY-THE is 102104 ###
+ ### Estimated array size for SAMMY-XCT is 376110 ###
+ ### Array size used for SAMMY-XCT is 370000 ###
+ ### Estimated array size for SAMMY-FGM is 403259 ###
+ ### Array size used for SAMMY-FGM is 403259 ###
+ ### Estimated array size for SAMMY-RSL is 452944 ###
+ ### Array size used for SAMMY-RSL is 436355 ###
+ ### Estimated array size for SAMMY-INT is 402368 ###
+ ### Array size used for SAMMY-INT is 370001 ###
+ ### Estimated array size for SAMMY-IPQ is 369999 ###
+
+ CUSTOMARY CHI SQUARED = 54751.6
+ CUSTOMARY CHI SQUARED DIVIDED BY NDAT = 3.47939
+ ### Array size used for SAMMY-IPQ is 267531 ###
+ ### Estimated array size for SAMMY-FIN is 220359 ###
+
+
+
+
+ ***** NEW VALUES FOR RESONANCE PARAMETERS
+
+ SPIN GROUP NUMBER 1 WITH SPIN= 0.5, ABUNDANCE= 0.9327( 3), AND G= 1.0000
+ effective radius = 4.1364E+00 4.1364E+00
+ "true" radius = 4.1364E+00 4.1364E+00
+ ENERGY GAMMA- GAMMA- GAMMA-
+ GAMMA Inc Chan PPair #2
+ L=0 SPIN= 0.5 L=2 SPIN= 1.5
+ (eV) (MILLI-EV) (MILLI-EV) (MILLI-EV)
+ -3.66160E+06 1.5877E+05 4.0753E+09( 1) 0.0000E+00
+ -8.73730E+05 1.0253E+03 1.0151E+02( 2) 0.0000E+00
+ Expected 0.0000E+00 1.0155E+02 0.0000E+00
+ Value +/- 0.0000E+00 +/- 1.0151E+01 +/- 0.0000E+00
+ EV changed 0.0000E+00 4.0753E+09 0.0000E+00
+ parameters +/- 0.0000E+00 +/- 8.6688E+06 +/- 0.0000E+00
+
+
+ EFFECTIVE RADIUS "TRUE" RADIUS SPIN GROUP NUMBER FOR THESE RADII
+ # channel numbers
+ 4.1364200 4.1364200 1 # 1 2 3
+ 4 # 1 2 3
+ 5 # 1 2 3
+ 4.9437200 4.9437200 2 # 1 2 3
+ 3 # 1 2 3
+ 6 # 1 2 3
+ 7 # 1 2 3
+ 4.4000000 4.4000000 8 # 1 2 3
+ 9 # 1 2 3
+ 10 # 1 2 3
+ 11 # 1 2 3
+ 12 # 1 2 3
+ 13 # 1 2 3
+ 14 # 1 2 3
+ 15 # 1 2 3
+ 16 # 1 2 3
+ 17 # 1 2 3
+ 4.2000000 4.2000000 18 # 1 2 3
+ 19 # 1 2 3
+ 20 # 1 2 3
+ 21 # 1 2 3
+ 22 # 1 2 3
+ 4.2000000 4.2000000 23 # 1 2 3
+ 24 # 1 2 3
+ 25 # 1 2 3
+ 26 # 1 2 3
+ 27 # 1 2 3
+ 28 # 1 2 3
+ 29 # 1 2 3
+
+
+ Isotopic abundance and mass for each nuclide --
+ Nuclide Abundance Mass Spin groups
+ 1 0.9327 ( 3) 27.9769 1 2 3 4 5 6 7
+ 2 3.8773E-02( 4) 28.9765 8 9 10 11 12 13 14 15 16 17
+ 3 2.1778E-02( 5) 29.9738 18 19 20 21 22
+ 4 1.000 16.0000 23 24 25 26 27 28 29
+
+
+ TEMPERATURE THICKNESS
+ 3.0000E+02 3.4716E-01
+
+ DELTA-L DELTA-T-GAUS DELTA-T-EXP
+ 1.8223E-01 2.5180E-03 0.0000E+00
+
+
+
+ ***** CORRELATION MATRIX FOR OUTPUT PARAMETERS
+
+ STD.DEV. (REL.) CORRELATION*100
+
+ 1 2 3 4 5
+ 1 8.6688E+06 .002 100
+ 2 10.15 .100 0 100
+ 3 4.4228E-04 .000 -40 0 100
+ 4 4.3666E-04 .011 -28 0 -39 100
+ 5 4.7877E-04 .022 -27 0 -27 -29 100
+
+
+
+ ***** RATIO OF UNCERTAINTIES ON VARIED PARAMETERS
+
+ NEW/OLD NEW/OLD NEW/OLD NEW/OLD
+ ( 1) 2.3439E-02 ( 2) 1.000 ( 3) 4.8074E-04 ( 4) 8.7331E-03
+ ( 5) 2.3938E-02
+
+
+ ***** RATIO OF UNCERTAINTIES ON VARIED U-PARAMETERS
+
+ NEW/OLD NEW/OLD NEW/OLD NEW/OLD
+ ( 1) 2.2329E-02 ( 2) 1.0000 ( 3) 4.8074E-04 ( 4) 8.7331E-03
+ ( 5) 2.3938E-02
+
+ ### Array size used for SAMMY-FIN is 222283 ###
+
+
+ *****************************************************************************
+ ***** *****
+ ***** example ex012: multiple nuclides (Natural Si -- 200 m flight pat *****
+ ***** h) *****
+ *****************************************************************************
+
+
+ Input quantities from line number 2 are:
+ Alfnm1, Alfnm2 = ##Si ## Atomic Weight = 27.976928
+ Nepnts Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 0 0 0 0 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+Adjusted Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 50 0 9 5 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+
+
+ TARGET ELEMENT IS Si
+ ATOMIC WEIGHT IS 27.976928
+
+
+ *********** Alphanumeric Control Information *********
+
+ CSISRS
+ CHI SQUARED IS WANTED
+ DO NOT SUPPRESS ANY intermediate results
+ ODF FILE IS WANTED--SAMMY.ODF ,FINAL VAL
+ DO NOT ALLOW VALUES FOR DATA-RELATED PAR
+ DO NOT PRINT BAYES CHI SQUARED
+ DO NOT SOLVE BAYES EQUATIONS
+ DO NOT PRINT ANY INPUT PARAMETERS
+
+ **** end of Alphanumeric Control Information *********
+
+
+ Name of initial parameter covariance file is:
+ >>> SAMMY.COV <<<
+ ### Estimated array size for SAMMY-INP is 5799 ###
+
+ Effective Temperature= 300.00000
+ Flight Path= 200.00000 Meters +/- 0.18223/2 Meters
+ Deltae= 0.00000 Deltag= 0.00252
+ Delttt= 0.00000 Elowbr= 0.00000000
+
+ Target Thickness= 0.3472
+
+ **** Data type is <<< TRANSMISSION >>> ****
+
+ Spin of incident particle is 0.5
+__________________________
+
+ ### Array size used for SAMMY-INP is 6829 ###
+ ### Estimated array size for SAMMY-PAR is 8010 ###
+
+ Total number of resonances is 162
+ Number of particle channels is 3
+ Number of spin groups is 29
+ Number of flagged parametrs is 5
+ Number of varied parameters is 5
+ Number of nuclides is 4
+ ### Array size used for SAMMY-PAR is 8095 ###
+ ### Estimated array size for SAMMY-OLD is 6481 ###
+ Number of non-zero off-diagonal cov matrix elements is 10
+
+
+ Broadening (etc.) parameters actually used for this run
+
+ Effective Temperature = 300.000
+ Sample Thickness = 0.347162
+ FLIGHT PATH LENGTH (Dist) = 200.000
+ DeltaL = 0.182233
+ DeltaG = 2.518000E-03
+ DeltaE = 0.00000
+ ### Array size used for SAMMY-OLD is 6637 ###
+ Emin 300000. is less than the minimum energy in the data set
+ Emin has been changed to 300001.
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emax 1.800000E+06 is greater than the maximum energy in the data set
+ Emax has been changed to 1.799868E+06
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emind Emins Eminr Emin
+ 298650.6726016077 298871.5528528391 298871.5528528391 300000.6537499999
+ Emax Emaxr Emaxs Emaxd
+ 1799868.1037500002 1807023.7054032285 1807023.7054032285 1807566.9675226703
+
+ DOPPLER WIDTHS
+ Nuclide Doppler Width (eV) Doppler FWHM (eV)
+ Number at Emin at Emax at Emin at Emax
+ 1 33.4435 81.9164 55.6871 136.400
+ 2 32.8616 80.4912 54.7182 134.027
+ 3 32.3103 79.1408 53.8002 131.778
+ 4 44.2234 108.321 73.6367 180.366
+
+ Gaussian Resolution Width at Emin = 225.820 and at Emax = 1431.12
+
+ E(keV) Dopp_FWHM(keV) Resol_FWHM(keV) Both_FWHM(keV)
+ 300.000654 0.0736 0.3760 0.3832
+ 1049.934379 0.1378 1.3535 1.3605
+ 1799.868104 0.1804 2.3830 2.3898
+
+ ### Estimated array size for SAMMY-DAT is 32437024 + 32500000 ###
+
+ Energy range of data is from 3.00001E+05 to 1.79987E+06 eV.
+ Number of experimental data points = 15736
+
+
+ ** 30 resonances have fewer than 9 points across width
+ Number of points in auxiliary grid = 16630
+ ### Array size used for SAMMY-DAT is 32437021 + 32500000 ###
+ ### Estimated array size for SAMMY-THE is 86195 ###
+ ### Array size used for SAMMY-THE is 86194 ###
+ ### Estimated array size for SAMMY-XCT is 193270 ###
+ ### Array size used for SAMMY-XCT is 187783 ###
+ ### Estimated array size for SAMMY-FGM is 221042 ###
+ ### Array size used for SAMMY-FGM is 221042 ###
+ ### Estimated array size for SAMMY-RSL is 270727 ###
+ ### Array size used for SAMMY-RSL is 254138 ###
+ ### Estimated array size for SAMMY-INT is 220151 ###
+ ### Array size used for SAMMY-INT is 220152 ###
+ ### Estimated array size for SAMMY-IPQ is 187782 ###
+
+ CUSTOMARY CHI SQUARED = 54111.1
+ CUSTOMARY CHI SQUARED DIVIDED BY NDAT = 3.43868
+ ### Array size used for SAMMY-IPQ is 168467 ###
+ ### Estimated array size for SAMMY-FIN is 121245 ###
+ ### Array size used for SAMMY-FIN is 6451 ###
+ Total time = 9.54 seconds
+ Normal finish to SAMMY
diff --git a/tests/data/ex012/answers/ex012aa.par b/tests/data/ex012/answers/ex012aa.par
new file mode 100755
index 0000000..1e4e7ce
--- /dev/null
+++ b/tests/data/ex012/answers/ex012aa.par
@@ -0,0 +1,207 @@
+-3661600.00 158770.000 4075253.+3 0.0000 0 0 1 0 1
+-873730.000 1025.30000 101.510303 0.0000 0 0 1 0 1
+-365290.000 1000.00000 30.4060000 0.0000 0 0 0 0 1
+-63159.0000 1000.00000 46.8940000 0.0000 0 0 0 0 1
+-48801.0000 1000.00000 9.24960000 0.0000 0 0 0 0 1
+31739.99805 1000.00000 15.6670000 0.0000 0.0000 0 0 0 0 0 5
+55676.96094 1580.30000 653310.000 0.0000 0 0 0 0 1
+67732.84375 2500.00000 2658.90000 0.0000 0 0 0 0 3
+70800.00781 1000.00000 29.6170000 0.0000 0.0000 0 0 0 0 0 5
+86797.35938 2500.00000 726.180000 0.0000 0 0 0 0 3
+181617.5000 5600.00000 34894000.0 0.0000 0 0 0 0 1
+298700.0000 1000.00000 9886.00000 0.0000 0.0000 0 0 0 0 0 5
+301310.8125 3600.00000 2354.80000 0.0000 0 0 0 0 1
+354588.6875 1000.00000 14460.0000 0.0000 0.0000 0 0 0 0 0 5
+399675.9375 660.000000 813.610000 0.0000 0 0 0 0 3
+532659.8750 2500.00000 532810.000 0.0000 0 0 0 0 3
+565576.8750 2900.00000 10953000.0 0.0000 0 0 0 0 3
+587165.7500 8800.00000 199160.000 0.0000 0 0 0 0 2
+590290.1250 3600.00000 523660.000 0.0000 0 0 0 0 1
+602467.3125 3400.00000 50491.0000 0.0000 0.0000 0 0 0 0 0 4
+714043.4375 2500.00000 1216.50000 0.0000 0 0 0 0 3
+771711.9375 1000.00000 53139.0000 0.0000 0.0000 0 0 0 0 0 5
+812491.6250 9700.00000 30100000.0 0.0000 0 0 0 0 3
+845233.8750 2000.00000 397910.000 0.0000 0.0000 0 0 0 0 0 4
+872305.8125 1300.00000 32140.0000 0.0000 0.0000 0 0 0 0 0 5
+910043.5625 1130.00000 3673300.00 0.0000 0 0 0 0 3
+962233.0000 16000.0000 76614000.0 0.0000 0 0 0 0 2
+1017777.188 1000.00000 76192.0000 0.0000 0.0000 0 0 0 0 0 5
+1042856.812 1000.00000 933700.000 0.0000 0.0000 0 0 0 0 0 5
+1085169.250 3600.00000 72794.0000 0.0000 0 0 0 0 1
+1148103.625 1000.00000 3146.90000 0.0000 0.0000 0 0 0 0 0 5
+1162663.625 3800.00000 3013600.00 0.0000 0 0 0 0 1
+1199501.375 7600.00000 14914000.0 0.0000 0 0 0 0 2
+1201238.750 3600.00000 4601200.00 0.0000 0 0 0 0 1
+1256447.250 3600.00000 17383000.0 0.0000 0 0 0 0 1
+1264441.750 1000.00000 843640.000 0.0000 0.0000 0 0 0 0 0 5
+1379920.250 2400.00000 65299.0000 0.0000 0.0000 0 0 0 0 0 4
+1408269.750 2700.00000 5198300.00 0.0000 0 0 0 0 3
+1479927.250 1650.00000 3502500.00 0.0000 0.0000 0 0 0 0 0 4
+1482395.375 8800.00000 886.940000 0.0000 0 0 0 0 2
+1512343.875 1000.00000 91493.0000 0.0000 0.0000 0 0 0 0 0 5
+1528742.375 2400.00000 2922500.00 0.0000 0.0000 0 0 0 0 0 4
+1580564.875 2400.00000 1495500.00 0.0000 0.0000 0 0 0 0 0 4
+1592844.250 8800.00000 11199000.0 0.0000 0 0 0 0 2
+1597168.625 2400.00000 4017200.00 0.0000 0.0000 0 0 0 0 0 4
+1639561.500 1000.00000 15293000.0 0.0000 0.0000 0 0 0 0 0 5
+1651146.000 1000.00000 21555000.0 0.0000 0.0000 0 0 0 0 0 5
+1658595.000 8800.00000 1555300.00 0.0000 0 0 0 0 2
+1664961.125 2400.00000 215900.000 0.0000 0.0000 0 0 0 0 0 4
+1784952.750 2400.00000 192940.000 0.0000 0.0000 0 0 0 0 0 4
+1805652.625 2500.00000 1299100.00 0.0000 0 0 0 0 3
+1850667.250 1000.00000 35515000.0 0.0000 0.0000 0 0 0 0 0 5
+1852435.250 2500.00000 70707000.0 0.0000 0 0 0 0 3
+1923655.250 1000.00000 1017100.00 0.0000 0.0000 0 0 0 0 0 5
+2248678.250 3600.00000 444760000. 0.0000 0 0 0 0 1
+1968869.750 1000.00000 5734100.00 0.0000 0.0000 0 0 0 0 0 5
+3007280.500 3600.00000 289960.000 0.0000 0 0 0 0 1
+3067775.250 3600.00000 422290.000 0.0000 0 0 0 0 1
+-2179600.00 409080.000 1722200.+3 0 0 0 8
+-860240.000 999.970000 34170000.0 0 0 0 8
+-431280.000 1005.90000 228510000. 0 0 0 8
+15282.00000 1646.00000 10000.0000 0 0 0 10
+38819.00000 2400.00000 75926.0000 0 0 0 13
+159682.9688 1900.00000 1200300.00 0 0 0 10
+184456.4844 1500.00000 136740.000 0 0 0 10
+336790.2812 800.000000 2512800.00 0 0 0 10
+385764.1875 4670.00000 24133000.0 0 0 0 9
+552241.8125 5700.00000 1298900.00 0 0 0 13
+566558.4375 3000.00000 70820000.0 0 0 0 10
+619664.6250 3000.00000 725960.000 0 0 0 13
+649726.0000 3000.00000 1095900.00 0 0 0 13
+653064.6250 6300.00000 19386000.0 0 0 0 12
+715064.6250 300.000000 978570.000 0 0 0 10
+716771.3125 3000.00000 219300000. 0 0 0 8
+802258.9375 3000.00000 9934900.00 0 0 0 15
+862003.6875 3000.00000 432930000. 0 0 0 8
+872483.5000 300.000000 17335000.0 0 0 0 10
+955891.2500 300.000000 982890.000 0 0 0 13
+1098425.500 3000.00000 57787.0000 0 0 0 15
+1113807.625 300.000000 76533000.0 0 0 0 10
+1122279.500 300.000000 4881600.00 0 0 0 13
+1178601.750 3000.00000 8295900.00 0 0 0 9
+1192267.500 300.000000 375060.000 0 0 0 12
+1207629.500 300.000000 19795000.0 0 0 0 13
+1388859.125 3000.00000 4271400.00 0 0 0 15
+1769072.750 3000.00000 32136.0000 0 0 0 8
+2248487.000 3000.00000 169320.000 0 0 0 8
+-1185100.00 118480.000 260570000. 0 0 0 18
+-161550.000 650.000000 426400.000 0 0 0 18
+2235.000000 370.000000 932.660000 0 0 0 20
+4977.000000 600.000000 1122.00000 0 0 0 19
+183488.8281 6000.00000 9997600.00 0 0 0 18
+235225.3906 800.000000 115410.000 0 0 0 21
+302839.2188 370.000000 274430.000 0 0 0 20
+413136.1875 600.000000 1580100.00 0 0 0 19
+645239.8125 800.000000 401430.000 0 0 0 21
+704912.0000 800.000000 423190.000 0 0 0 21
+745454.0000 370.000000 14735000.0 0 0 0 20
+796946.1250 600.000000 469320.000 0 0 0 19
+807379.8125 600.000000 274330.000 0 0 0 19
+810796.9375 600.000000 419310.000 0 0 0 19
+844674.6250 370.000000 3315300.00 0 0 0 20
+878822.8125 800.000000 110630.000 0 0 0 21
+979821.3125 600.000000 591820.000 0 0 0 19
+1182175.750 6000.00000 5912400.00 0 0 0 18
+1217821.125 800.000000 1888900.00 0 0 0 21
+1274871.500 600.000000 2225500.00 0 0 0 19
+1302032.875 800.000000 304790.000 0 0 0 21
+1310774.875 370.000000 339710.000 0 0 0 20
+1337984.375 600.000000 4624000.00 0 0 0 19
+1356024.750 370.000000 12271000.0 0 0 0 20
+1383597.625 600.000000 25336000.0 0 0 0 19
+1400981.375 800.000000 1897600.00 0 0 0 21
+1412107.750 370.000000 668620.000 0 0 0 20
+1586007.000 6000.00000 23644000.0 0 0 0 18
+2583249.500 6000.00000 92076000.0 0 0 0 18
+-11592000.0 1200.00000 7517400.+3 0 0 0 23
+-9192600.00 1200.00000 1435600.+4 0 0 0 23
+433901.3750 1200.00000 43760000.0 0 0 0 25
+999736.9375 1200.00000 96583000.0 0 0 0 26
+1307683.875 1200.00000 42027000.0 0 0 0 25
+1630813.125 1200.00000 71367.0000 0 0 0 25
+1650581.000 1200.00000 3901300.00 0 0 0 29
+1833142.125 1200.00000 7835200.00 0 0 0 26
+1898468.875 1200.00000 28678000.0 0 0 0 24
+2372699.000 1200.00000 155330000. 0 0 0 23
+2888249.750 1200.00000 1885900.00 0 0 0 24
+3004838.500 1200.00000 2333.80000 0 0 0 24
+3181814.500 1200.00000 517690000. 0 0 0 24
+3203037.750 1200.00000 179230000. 0 0 0 23
+3204505.000 1200.00000 310910.000 0 0 0 28
+3239197.250 1200.00000 251410000. 0 0 0 26
+3431828.250 1200.00000 615700.000 0 0 0 27
+3438834.250 1200.00000 1803900.00 0 0 0 28
+3636796.000 1200.00000 701840000. 0 0 0 25
+3763624.250 1200.00000 16031000.0 0 0 0 29
+3853751.500 1200.00000 562450000. 0 0 0 23
+4175216.750 1200.00000 70220000.0 0 0 0 26
+4288830.500 1200.00000 56268000.0 0 0 0 25
+4303685.000 1200.00000 16078000.0 0 0 0 24
+4461693.000 1200.00000 77996000.0 0 0 0 23
+4525253.000 1200.00000 4173300.00 0 0 0 27
+4591673.500 1200.00000 91070.0000 0 0 0 29
+4592562.000 1200.00000 175270.000 0 0 0 28
+4816678.000 1200.00000 47145000.0 0 0 0 25
+5055537.000 1200.00000 52134000.0 0 0 0 26
+5118596.000 1200.00000 17864000.0 0 0 0 29
+5365329.500 1200.00000 980620.000 0 0 0 27
+5617318.000 1200.00000 33197000.0 0 0 0 28
+5666636.000 1200.00000 12687000.0 0 0 0 27
+5912201.500 1200.00000 12942000.0 0 0 0 29
+5986110.000 1200.00000 7106100.00 0 0 0 26
+6076846.000 1200.00000 5166700.00 0 0 0 28
+6116665.000 1200.00000 5549900.00 0 0 0 24
+6389893.000 1200.00000 4935600.00 0 0 0 29
+6813680.500 1200.00000 3262900.00 0 0 0 28
+6833136.500 1200.00000 5140500.00 0 0 0 27
+7373000.000 1200.00000 2400000.00 0 0 0 24
+8820920.000 1200.00000 1123400.+4 0 0 0 25
+10934820.00 1200.00000 276110.000 0 0 0 23
+15050371.00 1200.00000 634990.000 0 0 0 23
+25004488.00 1200.00000 6918.60000 0 0 0 23
+
+.100000000
+Channel radii in key-word format
+Radii= 4.136420, 4.136420 Flags=0,-1
+ Group= 1 Chan= 1, 2,
+ Group= 4 Chan= 1, 2, 3,
+ Group= 5 Chan= 1, 2, 3,
+Radii= 4.943720, 4.943720 Flags=0,-1
+ Group= 2 Chan= 1, 2,
+ Group= 3 Chan= 1, 2,
+ Group= 6 Chan= 1, 2, 3,
+ Group= 7 Chan= 1, 2, 3,
+Radii= 4.400000, 4.400000 Flags=0,-1
+ Group= 8 Chan= 1,
+ Group= 9 Chan= 1,
+ Group= 10 Chan= 1,
+ Group= 11 Chan= 1,
+ Group= 12 Chan= 1,
+ Group= 13 Chan= 1,
+ Group= 14 Chan= 1,
+ Group= 15 Chan= 1,
+ Group= 16 Chan= 1,
+ Group= 17 Chan= 1,
+Radii= 4.200000, 4.200000 Flags=0,-1
+ Group= 18 Chan= 1,
+ Group= 19 Chan= 1,
+ Group= 20 Chan= 1,
+ Group= 21 Chan= 1,
+ Group= 22 Chan= 1,
+Radii= 4.200000, 4.200000 Flags=0,-1
+ Group= 23 Chan= 1,
+ Group= 24 Chan= 1,
+ Group= 25 Chan= 1,
+ Group= 26 Chan= 1,
+ Group= 27 Chan= 1,
+ Group= 28 Chan= 1,
+ Group= 29 Chan= 1,
+
+NUCLIDE MASSES AND ABUNDANCES FOLLOW
+27.9769290 .93272247 .92000000 1 1 2 3 4 5 6 7
+28.9764960 .03877252 .05000000 1 8 91011121314151617
+29.9737720 .02177828 .02000000 11819202122
+16.0000000 1.0000000 .01000000 023242526272829
+
+COVARIANCE MATRIX IS IN BINARY FORM
diff --git a/tests/data/ex012/answers/ex012b b/tests/data/ex012/answers/ex012b
new file mode 100755
index 0000000..628f27c
--- /dev/null
+++ b/tests/data/ex012/answers/ex012b
@@ -0,0 +1,12 @@
+#!/bin/csh
+
+sammy <x.x
+Echo ex012a.par >>x.x
+Echo ex012a.dat >>x.x
+Echo.>>x.x
+sammy < x.x
+Rem # pause
+move SAMMY.LPT results\ex012bb.lpt
+move SAMMY.ODF results\ex012bb.odf
+del SAM*.*
+
+del x.x
diff --git a/tests/data/ex012/answers/ex012b.inp b/tests/data/ex012/answers/ex012b.inp
new file mode 100755
index 0000000..7831478
--- /dev/null
+++ b/tests/data/ex012/answers/ex012b.inp
@@ -0,0 +1,82 @@
+example ex012b: Si28 p-waves, abndnc=1, no broadening
+Si 27.976928 300000. 1800000.
+csisrs
+chi squared is not wanted
+do not suppress any intermediate results
+generate odf file automatically
+do not solve bayes equations
+broadening is not wanted
+#### 300. 200.0000 0.182233 0.0 0.002518
+
+ 4.20000 0.347162
+TRANSMISSION
+ 1 X 1 1 0.5 0.9223 0.0 Si28 s1/2
+ 1 1 0 0 0.5 0.0 0.0
+ 2 1 0 2 1.5 0.0 1843140.0
+ 2 1 1 -0.5 0.9223 0.0 Si28 p1/2
+ 1 1 0 1 0.5 0.0 0.0
+ 2 1 0 1 0.5 0.0 1843140.0
+ 3 1 1 -1.5 0.9223 0.0 Si28 p3/2
+ 1 1 0 1 0.5 0.0 0.0
+ 2 1 0 1 0.5 0.0 1843140.0
+ 4 X 1 2 1.5 0.9223 0.0 Si28 d3/2
+ 1 1 0 2 0.5 0.0 0.0
+ 2 1 0 2 0.5 0.0 1843140.0
+ 3 1 0 0 1.5 0.0 1843140.0
+ 5 X 1 2 2.5 0.9223 0.0 Si28 d5/2
+ 1 1 0 2 0.5 0.0 0.0
+ 2 1 0 2 0.5 0.0 1843140.0
+ 3 1 0 0 2.5 0.0 1843140.0
+ 6 X 1 2 -2.5 0.9223 0.0 Si28 f5/2
+ 1 1 0 3 0.5 0.0 0.0
+ 2 1 0 3 0.5 0.0 1843140.0
+ 3 1 0 1 2.5 0.0 1843140.0
+ 7 X 1 2 -3.5 0.9223 0.0 Si28 f7/2
+ 1 1 0 3 0.5 0.0 0.0
+ 2 1 0 3 0.5 0.0 1843140.0
+ 3 1 0 1 2.5 0.0 1843140.0
+ 8 X 1 0 0.0 0.0467 0.5 Si29 s0s (el=0, J=0, singlet j=0)
+ 1 1 0 0 0.0 0.0 0.0
+ 9 X 1 0 1.0 0.0467 0.5 Si29 s1q (el=0, J=1, quartet j=1)
+ 1 1 0 0 1.0 0.0 0.0
+ 10 X 1 0 -1.0 0.0467 0.5 Si29 p1s
+ 1 1 0 1 0.0 0.0
+ 11 X 1 0 -0.0 0.0467 0.5 Si29 p0q
+ 1 1 0 1 1.0 0.0
+ 12 X 1 0 -1.0 0.0467 0.5 Si29 p1q
+ 1 1 0 1 1.0 0.0
+ 13 X 1 0 -2.0 0.0467 0.5 Si29 p2q
+ 1 1 0 1 1.0 0.0
+ 14 X 1 0 2.0 0.0467 0.5 Si29 d2s
+ 1 1 0 2 0.0 0.0
+ 15 X 1 0 1.0 0.0467 0.5 Si29 d1q
+ 1 1 0 2 1.0 0.0
+ 16 X 1 0 2.0 0.0467 0.5 Si29 d2q
+ 1 1 0 2 1.0 0.0
+ 17 X 1 0 3.0 0.0467 0.5 Si29 d3q
+ 1 1 0 2 1.0 0.0
+ 18 X 1 0 0.5 0.0310 0.0 Si30 s1/2
+ 1 1 0 0 0.5 0.0
+ 19 X 1 0 -0.5 0.0310 0.0 Si30 p1/2
+ 1 1 0 1 0.5 0.0
+ 20 X 1 0 -1.5 0.0310 0.0 Si30 p3/2
+ 1 1 0 1 0.5 0.0
+ 21 X 1 0 1.5 0.0310 0.0 Si30 d3/2
+ 1 1 0 2 0.5 0.0
+ 22 X 1 0 2.5 0.0310 0.0 Si30 d5/2
+ 1 1 0 2 0.5 0.0
+ 23 X 1 0 0.5 2.0 0.0 O s1/2
+ 1 1 0 0 0.5 0.0
+ 24 x 1 0 -0.5 2.0 0.0 O p1/2
+ 1 1 0 1 0.5 0.0
+ 25 x 1 0 -1.5 2.0 0.0 O p3/2
+ 1 1 0 1 0.5 0.0
+ 26 x 1 0 1.5 2.0 0.0 O d3/2
+ 1 1 0 2 0.5 0.0
+ 27 x 1 0 2.5 2.0 0.0 O d5/2
+ 1 1 0 2 0.5 0.0
+ 28 x 1 0 -2.5 2.0 0.0 O f5/2
+ 1 1 0 3 0.5 0.0
+ 29 x 1 0 -3.5 2.0 0.0 O f7/2
+ 1 1 0 3 0.5 0.0
+
diff --git a/tests/data/ex012/answers/ex012bb.lpt b/tests/data/ex012/answers/ex012bb.lpt
new file mode 100755
index 0000000..caf9516
--- /dev/null
+++ b/tests/data/ex012/answers/ex012bb.lpt
@@ -0,0 +1,293 @@
+
+ **********************************************************
+ *** ***
+ *** SAMMY Version 8.0.0 ***
+ *** ***
+ **********************************************************
+
+ Name of input file:
+ >>> ex012b.inp <<<
+ Name of parameter file:
+ >>> ex012a.par <<<
+ Values used for constants -- Kvendf=1
+ mass of neutron = 1.008664915600000 in amu
+ sqrt(m/2) = 72.298252179105063
+ sqrt(2m)/hbar = 0.000219680775849
+ Boltzman = 0.000086173430000
+ finestructure = 0.034447599938334 in 1/(amu*F)
+ GENERATE ODF FILE AUtomatically
+ BROADENING IS NOT WAnted
+ Name of experimental data file is:
+ >>> ex012a.dat <<<
+ Emin and Emax = 300000. 1.800000E+06
+
+
+ *****************************************************************************
+ ***** *****
+ ***** example ex012b: Si28 p-waves, abndnc=1, no broadening *****
+ ***** *****
+ *****************************************************************************
+
+
+ Input quantities from line number 2 are:
+ Alfnm1, Alfnm2 = ##Si ## Atomic Weight = 27.976928
+ Nepnts Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 0 0 0 0 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+Adjusted Itmax Icorr Nxtra Iptdop Iptwid Ixxchn
+ 0 0 50 0 9 5 0
+ Ndigit Idropp Matnum Kkkkza
+ 2 2 0 0
+
+
+ TARGET ELEMENT IS Si
+ ATOMIC WEIGHT IS 27.976928
+
+
+ *********** Alphanumeric Control Information *********
+
+ CSISRS
+ CHI SQUARED IS NOT WANTED
+ DO NOT SUPPRESS ANY intermediate results
+ DO NOT SOLVE BAYES EQUATIONS
+ BROADENING IS NOT WAnted
+ ODF FILE IS WANTED--SAMMY.ODF ,ZERO-TH O
+ PRINT VARIED INPUT PARAMETERS
+
+ **** end of Alphanumeric Control Information *********
+
+
+ ### Estimated array size for SAMMY-INP is 5799 ###
+
+ Target Thickness= 0.3472
+
+ **** Data type is <<< TRANSMISSION >>> ****
+
+ Spin of incident particle is 0.5
+ #of #of
+ Group Ent Exit Jspin Relative Ispin g Chn Lpnt Ishift eL Chspn
+ # Chn Chn Abndnc #
+ 1 1 1 0.5 0.9223 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 0 0.5
+ 2 1 0 2 1.5
+ 2 1 1 -0.5 0.9223 0.0 1.0000
+ 1 1 0 1 0.5
+ 2 1 0 1 0.5
+ 3 1 1 -1.5 0.9223 0.0 2.0000
+ 1 1 0 1 0.5
+ 2 1 0 1 0.5
+ 4 1 2 1.5 0.9223 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 2 1 0 2 0.5
+ 3 1 0 0 1.5
+ 5 1 2 2.5 0.9223 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 2 1 0 2 0.5
+ 3 1 0 0 2.5
+ 6 1 2 -2.5 0.9223 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+ 2 1 0 3 0.5
+ 3 1 0 1 2.5
+ 7 1 2 -3.5 0.9223 0.0 4.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+ 2 1 0 3 0.5
+ 3 1 0 1 2.5
+ 8 1 0 0.0 0.0467 0.5 0.2500 ** Excluded Spin Group **
+ 1 1 0 0 0.0
+ 9 1 0 1.0 0.0467 0.5 0.7500 ** Excluded Spin Group **
+ 1 1 0 0 1.0
+ 10 1 0 -1.0 0.0467 0.5 0.7500 ** Excluded Spin Group **
+ 1 1 0 1 0.0
+ 11 1 0 0.0 0.0467 0.5 0.2500 ** Excluded Spin Group **
+ 1 1 0 1 1.0
+ 12 1 0 -1.0 0.0467 0.5 0.7500 ** Excluded Spin Group **
+ 1 1 0 1 1.0
+ 13 1 0 -2.0 0.0467 0.5 1.2500 ** Excluded Spin Group **
+ 1 1 0 1 1.0
+ 14 1 0 2.0 0.0467 0.5 1.2500 ** Excluded Spin Group **
+ 1 1 0 2 0.0
+ 15 1 0 1.0 0.0467 0.5 0.7500 ** Excluded Spin Group **
+ 1 1 0 2 1.0
+ 16 1 0 2.0 0.0467 0.5 1.2500 ** Excluded Spin Group **
+ 1 1 0 2 1.0
+ 17 1 0 3.0 0.0467 0.5 1.7500 ** Excluded Spin Group **
+ 1 1 0 2 1.0
+ 18 1 0 0.5 0.0310 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 0 0.5
+ 19 1 0 -0.5 0.0310 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 20 1 0 -1.5 0.0310 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 21 1 0 1.5 0.0310 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 22 1 0 2.5 0.0310 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 23 1 0 0.5 2.0000 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 0 0.5
+ 24 1 0 -0.5 2.0000 0.0 1.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 25 1 0 -1.5 2.0000 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 1 0.5
+ 26 1 0 1.5 2.0000 0.0 2.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 27 1 0 2.5 2.0000 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 2 0.5
+ 28 1 0 -2.5 2.0000 0.0 3.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+ 29 1 0 -3.5 2.0000 0.0 4.0000 ** Excluded Spin Group **
+ 1 1 0 3 0.5
+
+__________________________
+ group channel Enbnd Echan z1 z2 m1 m2
+ 1 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 2 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 4 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 5 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 6 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 7 1 0.00000 0.00000 0 0 27.976929 1.008665
+ 2 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 3 0.00000 1.843140E+06 0 0 27.976929 1.008665
+ 8 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 9 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 10 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 11 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 12 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 13 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 14 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 15 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 16 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 17 1 0.00000 0.00000 0 0 28.976496 1.008665
+ 18 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 19 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 20 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 21 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 22 1 0.00000 0.00000 0 0 29.973772 1.008665
+ 23 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 24 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 25 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 26 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 27 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 28 1 0.00000 0.00000 0 0 16.000000 1.008665
+ 29 1 0.00000 0.00000 0 0 16.000000 1.008665
+__________________________
+
+ ### Array size used for SAMMY-INP is 6829 ###
+ ### Estimated array size for SAMMY-PAR is 8010 ###
+
+ Total number of resonances is 162
+ Number of particle channels is 3
+ Number of spin groups is 29
+ Number of flagged parametrs is 5
+ Number of varied parameters is 5
+ Number of nuclides is 4
+ ### Array size used for SAMMY-PAR is 8115 ###
+ ### Estimated array size for SAMMY-NEW is 6486 ###
+
+
+
+
+ ***** INITIAL VALUES FOR PARAMETERS
+
+ SPIN GROUP NUMBER 1 WITH SPIN= 0.5, ABUNDANCE= 1.0000( 3), AND G= 1.0000
+ effective radius = 4.1364E+00 4.1364E+00
+ "true" radius = 4.1364E+00 4.1364E+00
+ ENERGY GAMMA- GAMMA- GAMMA-
+ GAMMA Inc Chan PPair #2
+ L=0 SPIN= 0.5 L=2 SPIN= 1.5
+ (eV) (MILLI-EV) (MILLI-EV) (MILLI-EV)
+ -3.66160E+06 1.5877E+05 3.6985E+09( 1) 0.0000E+00
+ -8.73730E+05 1.0253E+03 1.0151E+02( 2) 0.0000E+00
+
+
+ EFFECTIVE RADIUS "TRUE" RADIUS SPIN GROUP NUMBER FOR THESE RADII
+ # channel numbers
+ 4.1364200 4.1364200 1 # 1 2 3
+ 4 # 1 2 3
+ 5 # 1 2 3
+ 4.9437200 4.9437200 2 # 1 2 3
+ 3 # 1 2 3
+ 6 # 1 2 3
+ 7 # 1 2 3
+ 4.4000000 4.4000000 8 # 1 2 3
+ 9 # 1 2 3
+ 10 # 1 2 3
+ 11 # 1 2 3
+ 12 # 1 2 3
+ 13 # 1 2 3
+ 14 # 1 2 3
+ 15 # 1 2 3
+ 16 # 1 2 3
+ 17 # 1 2 3
+ 4.2000000 4.2000000 18 # 1 2 3
+ 19 # 1 2 3
+ 20 # 1 2 3
+ 21 # 1 2 3
+ 22 # 1 2 3
+ 4.2000000 4.2000000 23 # 1 2 3
+ 24 # 1 2 3
+ 25 # 1 2 3
+ 26 # 1 2 3
+ 27 # 1 2 3
+ 28 # 1 2 3
+ 29 # 1 2 3
+
+
+ Isotopic abundance and mass for each nuclide --
+ Nuclide Abundance Mass Spin groups
+ 1 1.000 ( 3) 27.9769 1 2 3 4 5 6 7
+ 2 4.6700E-02( 4) 28.9765 8 9 10 11 12 13 14 15 16 17
+ 3 3.1000E-02( 5) 29.9738 18 19 20 21 22
+ 4 1.000 16.0000 23 24 25 26 27 28 29
+
+
+ TEMPERATURE THICKNESS
+ 0.0000E+00 3.4716E-01
+
+ DELTA-L DELTA-T-GAUS DELTA-T-EXP
+ 0.0000E+00 0.0000E+00 0.0000E+00
+ ### Array size used for SAMMY-NEW is 6979 ###
+ Emin 300000. is less than the minimum energy in the data set
+ Emin has been changed to 300001.
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emax 1.800000E+06 is greater than the maximum energy in the data set
+ Emax has been changed to 1.799868E+06
+ First 5 energies=
+ 300003.5 300026.0 300048.6 300071.2 300093.7
+ Last 5 energies=
+ 1799827. 1799495. 1799163. 1798831. 1798500.
+ Emind Emins Eminr Emin
+ 300000.6537499999 300000.6537499999 300000.6537499999 300000.6537499999
+ Emax Emaxr Emaxs Emaxd
+ 1799868.1037500002 1799868.1037500002 1799868.1037500002 1799868.1037500002
+ ### Estimated array size for SAMMY-DAT is 3225 + 32500000 ###
+
+ Energy range of data is from 3.00001E+05 to 1.79987E+06 eV.
+ Number of experimental data points = 15736
+
+ ### Array size used for SAMMY-DAT is 100871 ###
+ ### Estimated array size for SAMMY-THE is 85302 ###
+ ### Array size used for SAMMY-THE is 85301 ###
+ ### Estimated array size for SAMMY-XCT is 90806 ###
+ ### Array size used for SAMMY-XCT is 85319 ###
+ ### Estimated array size for SAMMY-INT is 116793 ###
+ ### Array size used for SAMMY-INT is 116794 ###
+ ### Estimated array size for SAMMY-IPQ is 116779 ###
+ ### Array size used for SAMMY-IPQ is 116791 ###
+ ### Estimated array size for SAMMY-FIN is 69569 ###
+ ### Array size used for SAMMY-FIN is 6451 ###
+ Total time = 1.22 seconds
+ Normal finish to SAMMY
diff --git a/tests/data/ex012/answers/xa.dot b/tests/data/ex012/answers/xa.dot
new file mode 100755
index 0000000..f18f539
--- /dev/null
+++ b/tests/data/ex012/answers/xa.dot
@@ -0,0 +1,6 @@
+/reset
+/xsn1
+/xmin800
+/xmax1100
+/ymin0
+/ymax 12
diff --git a/tests/data/ex012/answers/xb.dot b/tests/data/ex012/answers/xb.dot
new file mode 100755
index 0000000..7d1e736
--- /dev/null
+++ b/tests/data/ex012/answers/xb.dot
@@ -0,0 +1,6 @@
+/reset
+/xsn1
+/xmin300
+/xmax1800
+/ymin0
+/ymax 12
diff --git a/tests/data/ex012/answers/ya.dot b/tests/data/ex012/answers/ya.dot
new file mode 100755
index 0000000..609d9c3
--- /dev/null
+++ b/tests/data/ex012/answers/ya.dot
@@ -0,0 +1,2 @@
+/ave6
+dvt /sym3 f1s2,/nosy/dash0.1 f1s4,/nodash f1s5
diff --git a/tests/data/ex012/answers/yb.dot b/tests/data/ex012/answers/yb.dot
new file mode 100755
index 0000000..3d716f6
--- /dev/null
+++ b/tests/data/ex012/answers/yb.dot
@@ -0,0 +1,2 @@
+/ave6
+dvt /dash0.1 f1s4,/nodash f1s2
diff --git a/tests/data/ex012/ex012a b/tests/data/ex012/ex012a
new file mode 100755
index 0000000..c6a189a
--- /dev/null
+++ b/tests/data/ex012/ex012a
@@ -0,0 +1,12 @@
+#!/bin/csh
+
+sammy <x.x
+Echo ex012a.par >>x.x
+Echo ex012a.dat >>x.x
+Echo.>>x.x
+sammy < x.x
+Rem # pause
+move SAMMY.LPT results\ex012aa.lpt
+move SAMMY.ODF results\ex012aa.odf
+move SAMMY.PAR results\ex012aa.par
+del SAM*.*
+del x.x
diff --git a/tests/data/ex012/ex012a.dat b/tests/data/ex012/ex012a.dat
new file mode 100755
index 0000000..facd214
--- /dev/null
+++ b/tests/data/ex012/ex012a.dat
@@ -0,0 +1,15736 @@
+ 300003.47 .2292500 .0133873
+ 300026.00 .2215323 .0128452
+ 300048.59 .2302640 .0130915
+ 300071.16 .2328735 .0135787
+ 300093.69 .2419577 .0140825
+ 300116.25 .2345796 .0137422
+ 300138.84 .2305669 .0132813
+ 300161.41 .2259712 .0134183
+ 300183.97 .2277306 .0138025
+ 300206.59 .2469709 .0140359
+ 300229.16 .2206314 .0130591
+ 300251.72 .2348713 .0136783
+ 300274.28 .2379582 .0136706
+ 300296.91 .2330635 .0131666
+ 300319.50 .2206179 .0127233
+ 300342.06 .2385184 .0133228
+ 300364.69 .2155631 .0125304
+ 300387.28 .2124882 .0122681
+ 300409.88 .2177602 .0125976
+ 300432.47 .2333597 .0131408
+ 300455.09 .2469652 .0140835
+ 300477.69 .2099135 .0119839
+ 300500.28 .2544033 .0142339
+ 300522.94 .2286495 .0128684
+ 300545.53 .2384826 .0132911
+ 300568.16 .2236431 .0128137
+ 300590.75 .2048245 .0118719
+ 300613.41 .2258912 .0127943
+ 300636.03 .2421919 .0133666
+ 300658.62 .2153071 .0124981
+ 300681.31 .2268205 .0129746
+ 300703.91 .2397297 .0136752
+ 300726.53 .2433622 .0137858
+ 300749.16 .2202827 .0129213
+ 300771.84 .2353508 .0141258
+ 300794.47 .2279203 .0133646
+ 300817.09 .2203102 .0129718
+ 300839.78 .2303525 .0132047
+ 300862.44 .2223270 .0127433
+ 300885.06 .2404459 .0137536
+ 300907.72 .2211653 .0121984
+ 300930.41 .2546839 .0138504
+ 300953.06 .2244729 .0127326
+ 300975.72 .2293354 .0129864
+ 300998.41 .2192420 .0128043
+ 301021.06 .2439688 .0141489
+ 301043.72 .2213497 .0129600
+ 301066.38 .2376293 .0140149
+ 301089.09 .2091512 .0123562
+ 301111.75 .2520088 .0144137
+ 301134.44 .2287815 .0130869
+ 301157.16 .2374405 .0135732
+ 301179.81 .2684757 .0151606
+ 301202.50 .2324723 .0133118
+ 301225.22 .2181950 .0128147
+ 301247.91 .2199222 .0131287
+ 301270.59 .2284996 .0136063
+ 301293.28 .2372985 .0145610
+ 301316.00 .2099641 .0129718
+ 301338.69 .2122077 .0132402
+ 301361.41 .2210388 .0137290
+ 301384.12 .2166982 .0138158
+ 301406.84 .2370421 .0150120
+ 301429.53 .1998558 .0129213
+ 301452.25 .2411246 .0149904
+ 301475.00 .1932315 .0125795
+ 301497.72 .2130395 .0138423
+ 301520.44 .2312585 .0145955
+ 301543.19 .2018342 .0131264
+ 301565.91 .2271667 .0144261
+ 301588.62 .2142390 .0138663
+ 301611.34 .2277877 .0144919
+ 301634.12 .2222324 .0137746
+ 301656.84 .2077629 .0127650
+ 301679.59 .2165272 .0131927
+ 301702.34 .2260735 .0134082
+ 301725.09 .2055088 .0119913
+ 301747.84 .2208310 .0127835
+ 301770.56 .2122555 .0128124
+ 301793.38 .2383659 .0131967
+ 301816.12 .2188647 .0128754
+ 301838.84 .2361884 .0140398
+ 301861.66 .2534268 .0152951
+ 301884.41 .2398978 .0141852
+ 301907.16 .2556427 .0148749
+ 301929.94 .2406638 .0140133
+ 301952.72 .2349771 .0135230
+ 301975.50 .2485591 .0149021
+ 301998.25 .2234277 .0133836
+ 302021.09 .2168551 .0139938
+ 302043.84 .2249329 .0139453
+ 302066.62 .2515132 .0151627
+ 302089.41 .2516092 .0153455
+ 302112.22 .2405792 .0148506
+ 302135.00 .2304972 .0142592
+ 302157.81 .2177217 .0135719
+ 302180.62 .2216653 .0139098
+ 302203.41 .2319881 .0144435
+ 302226.22 .2183494 .0137135
+ 302249.00 .2044147 .0128594
+ 302271.84 .2415308 .0145873
+ 302294.66 .2424692 .0140163
+ 302317.47 .2085548 .0123801
+ 302340.31 .2249691 .0132172
+ 302363.12 .2236261 .0129988
+ 302385.94 .2318749 .0129869
+ 302408.75 .2231712 .0127378
+ 302431.59 .2233677 .0131267
+ 302454.41 .2316143 .0133818
+ 302477.25 .2203060 .0132405
+ 302500.09 .2180836 .0129709
+ 302522.94 .2247069 .0135056
+ 302545.78 .2287291 .0139265
+ 302568.59 .2314105 .0135309
+ 302591.47 .2387127 .0140187
+ 302614.31 .2121819 .0129112
+ 302637.16 .2134534 .0132527
+ 302660.03 .2377499 .0145537
+ 302682.88 .2326792 .0142575
+ 302705.72 .2260792 .0138919
+ 302728.62 .2203330 .0136793
+ 302751.47 .2213816 .0138306
+ 302774.34 .2169646 .0134995
+ 302797.19 .2165934 .0134923
+ 302820.09 .2097391 .0128132
+ 302842.97 .2358022 .0141566
+ 302865.81 .2180316 .0133507
+ 302888.75 .2363621 .0141407
+ 302911.59 .1998733 .0122892
+ 302934.47 .2160944 .0130055
+ 302957.34 .2251180 .0135691
+ 302980.28 .1985037 .0119614
+ 303003.16 .2193124 .0131902
+ 303026.03 .2153660 .0132022
+ 303048.97 .1861664 .0116649
+ 303071.88 .2089777 .0131640
+ 303094.75 .2079166 .0132640
+ 303117.66 .1818952 .0122761
+ 303140.59 .1842513 .0127672
+ 303163.50 .1648044 .0112593
+ 303186.41 .2138243 .0140748
+ 303209.34 .1903205 .0128681
+ 303232.25 .2015662 .0137235
+ 303255.16 .2087357 .0136542
+ 303278.06 .2208096 .0141338
+ 303301.03 .2345886 .0145278
+ 303323.94 .1995058 .0129767
+ 303346.88 .2274865 .0142441
+ 303369.84 .2299893 .0142234
+ 303392.75 .2138296 .0132048
+ 303415.69 .2283699 .0138832
+ 303438.62 .2233310 .0136633
+ 303461.59 .2294620 .0137593
+ 303484.53 .2446786 .0143325
+ 303507.47 .1968023 .0122155
+ 303530.47 .2538761 .0151354
+ 303553.41 .2106204 .0131097
+ 303576.34 .2412126 .0146220
+ 303599.28 .2248690 .0138452
+ 303622.28 .2154626 .0134699
+ 303645.25 .2444872 .0150860
+ 303668.19 .2285467 .0144629
+ 303691.22 .2359365 .0147443
+ 303714.16 .2095388 .0135858
+ 303737.12 .2044719 .0132367
+ 303760.09 .2280706 .0143464
+ 303783.12 .2126039 .0136841
+ 303806.09 .2225256 .0138144
+ 303829.06 .2324956 .0140758
+ 303852.09 .2170113 .0134085
+ 303875.06 .2406705 .0138002
+ 303898.03 .2124307 .0127062
+ 303921.03 .2086032 .0127700
+ 303944.06 .2258466 .0135132
+ 303967.06 .2137325 .0125500
+ 303990.03 .2248299 .0133413
+ 304013.09 .2422659 .0136992
+ 304036.09 .2340100 .0138230
+ 304059.09 .2578019 .0148457
+ 304082.12 .2137102 .0129289
+ 304105.12 .2149411 .0130657
+ 304128.16 .2616212 .0152219
+ 304151.16 .2187860 .0133305
+ 304174.22 .2288021 .0139874
+ 304197.22 .2130396 .0134335
+ 304220.25 .2298827 .0139692
+ 304243.31 .2060837 .0132926
+ 304266.34 .2347265 .0141375
+ 304289.38 .2461493 .0149067
+ 304312.41 .2315582 .0142366
+ 304335.47 .2172916 .0133910
+ 304358.50 .1983117 .0127498
+ 304381.56 .2156705 .0134846
+ 304404.62 .2421807 .0147466
+ 304427.69 .2403811 .0145267
+ 304450.72 .2216188 .0141090
+ 304473.78 .2219099 .0138876
+ 304496.88 .2636900 .0153966
+ 304519.91 .2204794 .0134838
+ 304542.97 .2229206 .0141203
+ 304566.06 .2263239 .0138339
+ 304589.12 .2304588 .0141406
+ 304612.19 .2127717 .0132048
+ 304635.28 .2512130 .0150092
+ 304658.38 .2297522 .0139787
+ 304681.44 .2339867 .0146258
+ 304704.53 .2195938 .0142807
+ 304727.66 .2213782 .0139894
+ 304750.72 .2246249 .0142429
+ 304773.81 .2404231 .0153885
+ 304796.91 .2371416 .0148923
+ 304820.03 .2348077 .0145432
+ 304843.12 .2340480 .0144896
+ 304866.22 .2163281 .0138300
+ 304889.34 .2472805 .0149085
+ 304912.44 .2244081 .0136461
+ 304935.53 .2388431 .0142919
+ 304958.66 .2610597 .0155328
+ 304981.81 .2076856 .0129966
+ 305004.91 .2190928 .0130895
+ 305028.03 .2589821 .0146569
+ 305051.19 .2359280 .0133208
+ 305074.28 .2290339 .0130573
+ 305097.41 .2400580 .0135873
+ 305120.53 .2302664 .0133250
+ 305143.69 .2553238 .0147841
+ 305166.84 .2479571 .0147497
+ 305189.97 .2325959 .0141383
+ 305213.12 .2264943 .0139208
+ 305236.28 .2191847 .0131641
+ 305259.41 .2284116 .0136350
+ 305282.56 .2528657 .0149739
+ 305305.72 .2381003 .0142412
+ 305328.88 .2568614 .0147496
+ 305352.03 .2153230 .0131452
+ 305375.22 .2350199 .0149730
+ 305398.38 .2315363 .0143126
+ 305421.53 .2169550 .0131865
+ 305444.72 .2352017 .0144143
+ 305467.91 .2183686 .0137344
+ 305491.06 .2284067 .0139787
+ 305514.22 .2346413 .0142612
+ 305537.44 .2359769 .0146860
+ 305560.62 .2527184 .0152653
+ 305583.78 .2445949 .0148952
+ 305607.00 .2515290 .0153398
+ 305630.19 .2233567 .0140502
+ 305653.38 .2510514 .0150924
+ 305676.56 .2456984 .0147430
+ 305699.78 .2328890 .0135961
+ 305722.97 .2504741 .0147575
+ 305746.16 .2631843 .0151508
+ 305769.41 .2630939 .0148268
+ 305792.59 .2377788 .0132755
+ 305815.81 .2500334 .0138632
+ 305839.00 .2302817 .0128709
+ 305862.25 .2519363 .0139693
+ 305885.47 .2416559 .0130819
+ 305908.69 .2320420 .0126747
+ 305931.94 .2123714 .0122009
+ 305955.16 .2455109 .0134610
+ 305978.38 .2443215 .0134865
+ 306001.59 .2328513 .0131379
+ 306024.88 .2296234 .0131570
+ 306048.09 .2512349 .0137777
+ 306071.31 .2147581 .0124927
+ 306094.59 .2489076 .0141780
+ 306117.84 .2347273 .0136031
+ 306141.06 .2310021 .0134872
+ 306164.31 .2238071 .0134970
+ 306187.59 .2390836 .0144372
+ 306210.84 .2249413 .0138313
+ 306234.09 .2404373 .0147025
+ 306257.38 .2384058 .0146975
+ 306280.66 .2668517 .0162719
+ 306303.91 .2453436 .0150658
+ 306327.16 .2331061 .0139722
+ 306350.47 .2440528 .0146486
+ 306373.72 .2362311 .0142224
+ 306397.00 .2415376 .0142431
+ 306420.31 .2485788 .0145942
+ 306443.59 .2451244 .0142593
+ 306466.84 .2402819 .0142110
+ 306490.12 .2168447 .0129543
+ 306513.47 .2590720 .0152302
+ 306536.75 .2298355 .0138926
+ 306560.03 .2620545 .0146793
+ 306583.34 .2692285 .0155350
+ 306606.66 .2307697 .0132474
+ 306629.94 .2235389 .0129930
+ 306653.25 .2067291 .0121636
+ 306676.59 .2356628 .0135839
+ 306699.88 .2303251 .0135417
+ 306723.19 .2151920 .0125368
+ 306746.53 .2475443 .0139783
+ 306769.84 .2622532 .0145511
+ 306793.16 .2279301 .0136023
+ 306816.47 .2459335 .0147591
+ 306839.84 .2326460 .0140129
+ 306863.16 .2567912 .0153351
+ 306886.47 .2449015 .0146883
+ 306909.84 .2444502 .0144932
+ 306933.19 .2404191 .0143271
+ 306956.50 .2363059 .0137403
+ 306979.88 .2320702 .0134600
+ 307003.22 .2461622 .0143627
+ 307026.56 .2277022 .0130936
+ 307049.91 .2399624 .0137060
+ 307073.28 .2296335 .0129757
+ 307096.62 .2370496 .0133779
+ 307120.00 .2749020 .0149272
+ 307143.38 .2248214 .0129056
+ 307166.75 .2484526 .0139438
+ 307190.09 .2615186 .0148883
+ 307213.47 .2608885 .0152084
+ 307236.88 .2493424 .0144210
+ 307260.22 .2463318 .0142888
+ 307283.59 .2272854 .0137174
+ 307307.00 .2483673 .0144071
+ 307330.38 .2483022 .0145231
+ 307353.75 .2479309 .0141143
+ 307377.12 .2124738 .0127425
+ 307400.56 .2269875 .0132048
+ 307423.94 .2332463 .0137715
+ 307447.34 .2281526 .0132980
+ 307470.78 .2412959 .0140049
+ 307494.16 .2302413 .0130147
+ 307517.56 .2445428 .0140055
+ 307540.94 .2406319 .0137497
+ 307564.41 .2360436 .0135450
+ 307587.81 .2623392 .0146817
+ 307611.22 .2377462 .0132734
+ 307634.66 .2450978 .0135066
+ 307658.06 .2323261 .0132096
+ 307681.47 .2370005 .0131104
+ 307704.91 .2295310 .0129248
+ 307728.38 .2595690 .0140411
+ 307751.78 .2374769 .0128104
+ 307775.22 .2342343 .0127435
+ 307798.69 .2297844 .0126017
+ 307822.09 .2557586 .0136803
+ 307845.53 .2500913 .0132151
+ 307868.97 .2375326 .0129620
+ 307892.47 .2310539 .0128912
+ 307915.91 .2351994 .0127764
+ 307939.34 .2705987 .0151186
+ 307962.84 .2331346 .0134657
+ 307986.28 .2348112 .0138083
+ 308009.72 .2734185 .0152199
+ 308033.19 .2351924 .0140787
+ 308056.69 .2542499 .0149049
+ 308080.16 .2485073 .0148239
+ 308103.59 .2381614 .0143550
+ 308127.12 .2484968 .0147681
+ 308150.59 .2256083 .0138778
+ 308174.06 .2324762 .0138759
+ 308197.53 .2500751 .0149312
+ 308221.03 .2405911 .0142143
+ 308244.53 .2429634 .0139343
+ 308268.00 .2209012 .0131608
+ 308291.53 .2477022 .0144483
+ 308315.00 .2362055 .0136357
+ 308338.50 .2291273 .0132819
+ 308362.03 .2380076 .0137544
+ 308385.53 .2243090 .0134260
+ 308409.03 .2393772 .0138448
+ 308432.53 .2206868 .0131464
+ 308456.06 .2453741 .0138072
+ 308479.59 .2351784 .0138843
+ 308503.09 .2352827 .0133705
+ 308526.62 .2352470 .0134771
+ 308550.16 .2235292 .0125988
+ 308573.66 .2029460 .0115640
+ 308597.19 .2254049 .0125754
+ 308620.75 .2492232 .0135519
+ 308644.28 .2453331 .0133933
+ 308667.81 .2580473 .0139183
+ 308691.38 .2329531 .0129687
+ 308714.91 .2241671 .0125820
+ 308738.44 .2500493 .0138493
+ 308761.97 .2451156 .0136247
+ 308785.56 .2322120 .0127949
+ 308809.09 .2421047 .0134627
+ 308832.66 .2471984 .0141634
+ 308856.25 .2341207 .0133413
+ 308879.78 .2628265 .0147932
+ 308903.34 .2585307 .0146599
+ 308926.91 .2407183 .0133166
+ 308950.50 .2474951 .0137464
+ 308974.06 .2465052 .0138801
+ 308997.62 .2372046 .0140733
+ 309021.25 .2406115 .0139099
+ 309044.81 .2663166 .0148745
+ 309068.38 .2621577 .0147178
+ 309091.97 .2292931 .0134560
+ 309115.59 .2583478 .0146972
+ 309139.16 .2453217 .0139443
+ 309162.75 .2489327 .0142120
+ 309186.38 .2279812 .0133684
+ 309209.97 .2435772 .0139422
+ 309233.56 .2513336 .0144854
+ 309257.16 .2252292 .0130097
+ 309280.78 .2354787 .0133832
+ 309304.38 .2395277 .0135530
+ 309328.00 .2406005 .0139092
+ 309351.62 .2597256 .0147543
+ 309375.25 .2449764 .0137663
+ 309398.84 .2581388 .0143960
+ 309422.47 .2478863 .0141113
+ 309446.12 .2457691 .0136219
+ 309469.75 .2328590 .0133840
+ 309493.38 .2365221 .0139402
+ 309517.03 .2411897 .0142723
+ 309540.66 .2379397 .0147846
+ 309564.28 .2197405 .0137925
+ 309587.91 .2165356 .0135650
+ 309611.59 .2283364 .0139363
+ 309635.22 .2514236 .0151371
+ 309658.88 .2477804 .0148672
+ 309682.56 .2269326 .0138389
+ 309706.22 .2422793 .0144176
+ 309729.84 .2405525 .0142117
+ 309753.50 .2493629 .0144055
+ 309777.19 .2215567 .0129255
+ 309800.84 .2263590 .0132440
+ 309824.50 .2454745 .0138756
+ 309848.22 .2265718 .0130821
+ 309871.88 .2637061 .0145516
+ 309895.56 .2390976 .0136338
+ 309919.28 .2344477 .0130491
+ 309942.94 .2354800 .0131146
+ 309966.62 .2246066 .0126243
+ 309990.28 .2265515 .0127778
+ 310014.03 .2479829 .0137182
+ 310037.69 .2492706 .0141058
+ 310061.38 .2401732 .0135183
+ 310085.12 .2456390 .0138089
+ 310108.81 .2474887 .0143656
+ 310132.50 .2432464 .0136399
+ 310156.19 .2419891 .0136658
+ 310179.94 .2413675 .0139434
+ 310203.66 .2520957 .0143538
+ 310227.34 .2524461 .0145253
+ 310251.09 .2386988 .0133786
+ 310274.81 .2453850 .0138854
+ 310298.53 .2432054 .0139826
+ 310322.25 .2356646 .0135360
+ 310346.00 .2406026 .0134706
+ 310369.72 .2448466 .0134051
+ 310393.44 .2324615 .0131577
+ 310417.22 .2193644 .0119805
+ 310440.94 .2335308 .0127947
+ 310464.69 .2236684 .0124376
+ 310488.41 .2599829 .0135680
+ 310512.19 .2629665 .0141956
+ 310535.94 .2400811 .0133780
+ 310559.69 .2164844 .0125753
+ 310583.47 .2391118 .0134803
+ 310607.22 .2371803 .0137161
+ 310630.97 .2430460 .0137032
+ 310654.72 .2718051 .0148372
+ 310678.53 .2319331 .0131086
+ 310702.28 .2650067 .0146961
+ 310726.06 .2279224 .0134310
+ 310749.84 .2395381 .0135845
+ 310773.62 .2205238 .0128572
+ 310797.41 .2533093 .0144332
+ 310821.16 .2438131 .0132567
+ 310845.00 .2281688 .0130776
+ 310868.78 .2437667 .0134949
+ 310892.56 .2495682 .0136728
+ 310916.38 .2532734 .0139353
+ 310940.16 .2491617 .0137781
+ 310963.94 .2309947 .0130038
+ 310987.75 .2139685 .0122603
+ 311011.59 .2487724 .0136949
+ 311035.38 .2622052 .0140222
+ 311059.19 .2328344 .0130627
+ 311083.03 .2564060 .0138165
+ 311106.84 .2267441 .0131249
+ 311130.66 .2425226 .0140197
+ 311154.47 .2374650 .0131540
+ 311178.31 .2229146 .0128890
+ 311202.12 .2414689 .0138043
+ 311225.94 .2471470 .0139682
+ 311249.81 .2590975 .0141850
+ 311273.62 .2450249 .0135020
+ 311297.47 .2502434 .0132632
+ 311321.34 .2260257 .0123542
+ 311345.19 .2332523 .0128462
+ 311369.00 .2330327 .0127772
+ 311392.84 .2347383 .0127478
+ 311416.75 .2498733 .0135365
+ 311440.59 .2538915 .0136747
+ 311464.44 .2346646 .0127836
+ 311488.31 .2332851 .0129326
+ 311512.19 .2488001 .0138295
+ 311536.03 .2451961 .0139519
+ 311559.88 .2295396 .0130596
+ 311583.78 .2393276 .0137602
+ 311607.66 .2419554 .0137884
+ 311631.53 .2619991 .0149869
+ 311655.44 .2215153 .0133402
+ 311679.31 .2791848 .0157420
+ 311703.19 .2605460 .0150970
+ 311727.06 .2512419 .0145470
+ 311750.97 .2544685 .0147789
+ 311774.88 .2529614 .0142031
+ 311798.75 .2402377 .0132148
+ 311822.69 .2418280 .0136400
+ 311846.56 .2144898 .0126320
+ 311870.47 .2248180 .0128142
+ 311894.38 .2513565 .0141936
+ 311918.31 .2504555 .0140727
+ 311942.22 .2247660 .0125349
+ 311966.12 .2400147 .0134929
+ 311990.06 .2244216 .0130036
+ 312013.97 .2422616 .0137925
+ 312037.88 .2263127 .0130965
+ 312061.81 .2483899 .0145991
+ 312085.78 .2363575 .0136456
+ 312109.69 .2436700 .0139644
+ 312133.62 .2417107 .0142024
+ 312157.59 .2527036 .0145929
+ 312181.50 .2578524 .0147143
+ 312205.44 .2368715 .0136311
+ 312229.38 .2554758 .0143970
+ 312253.38 .2419066 .0138329
+ 312277.31 .2140675 .0121079
+ 312301.25 .2653614 .0139314
+ 312325.22 .2550589 .0136237
+ 312349.19 .2374999 .0128251
+ 312373.12 .2627971 .0142279
+ 312397.09 .2419278 .0132085
+ 312421.09 .2426018 .0135090
+ 312445.06 .2475447 .0132967
+ 312469.00 .2380680 .0131921
+ 312493.03 .2308730 .0131307
+ 312517.00 .2282836 .0127012
+ 312540.97 .2589745 .0140754
+ 312564.94 .2537060 .0139626
+ 312588.97 .2408346 .0130445
+ 312612.94 .2620379 .0141237
+ 312636.91 .2293912 .0126455
+ 312660.94 .2426825 .0133830
+ 312684.94 .2471209 .0132706
+ 312708.91 .2439359 .0133904
+ 312732.97 .2416289 .0133886
+ 312756.97 .2540856 .0136867
+ 312780.94 .2143019 .0123263
+ 312804.94 .2597364 .0137889
+ 312829.00 .2489888 .0135232
+ 312853.00 .2086378 .0119589
+ 312877.03 .2722776 .0146167
+ 312901.06 .2433569 .0134981
+ 312925.09 .2502528 .0139980
+ 312949.09 .2386400 .0134499
+ 312973.12 .2522943 .0144819
+ 312997.19 .2481362 .0141116
+ 313021.22 .2101596 .0127034
+ 313045.25 .2344542 .0133321
+ 313069.31 .2431951 .0140641
+ 313093.38 .2369943 .0129974
+ 313117.41 .2754500 .0150218
+ 313141.44 .2485491 .0138585
+ 313165.53 .2368723 .0134120
+ 313189.56 .2323395 .0136934
+ 313213.62 .2344743 .0135700
+ 313237.72 .2538762 .0146877
+ 313261.78 .2194890 .0133788
+ 313285.81 .2494919 .0147629
+ 313309.88 .2185958 .0132636
+ 313334.00 .2630575 .0154082
+ 313358.06 .2325158 .0139677
+ 313382.12 .2418499 .0140920
+ 313406.25 .2235371 .0132879
+ 313430.31 .2515316 .0141577
+ 313454.38 .2539157 .0139758
+ 313478.47 .2282225 .0128118
+ 313502.59 .2234485 .0124936
+ 313526.69 .2538861 .0137160
+ 313550.75 .2282614 .0124398
+ 313574.91 .2626207 .0141175
+ 313599.00 .2733639 .0147568
+ 313623.09 .2238582 .0124914
+ 313647.19 .2702587 .0140958
+ 313671.31 .2623422 .0141852
+ 313695.44 .2533152 .0141330
+ 313719.53 .2285231 .0128165
+ 313743.69 .2312340 .0128031
+ 313767.81 .2597671 .0145004
+ 313791.91 .2738922 .0150610
+ 313816.03 .2458315 .0136405
+ 313840.19 .2597300 .0142992
+ 313864.31 .2243231 .0128425
+ 313888.44 .2510083 .0137778
+ 313912.62 .2358719 .0130675
+ 313936.75 .2488758 .0140487
+ 313960.88 .2606319 .0141647
+ 313985.03 .2322193 .0132640
+ 314009.22 .2535434 .0141476
+ 314033.34 .2362218 .0132646
+ 314057.50 .2405890 .0136525
+ 314081.69 .2435822 .0135863
+ 314105.84 .2569372 .0141671
+ 314130.00 .2647122 .0147553
+ 314154.16 .2408720 .0138616
+ 314178.34 .2426419 .0137389
+ 314202.53 .2431518 .0138032
+ 314226.69 .2462544 .0137570
+ 314250.91 .2583353 .0145984
+ 314275.06 .2302048 .0131793
+ 314299.25 .2371070 .0138266
+ 314323.47 .2436207 .0139611
+ 314347.62 .2420155 .0137294
+ 314371.81 .2244155 .0125267
+ 314396.00 .2403986 .0135175
+ 314420.25 .2508839 .0138430
+ 314444.44 .2433524 .0135716
+ 314468.62 .2408225 .0133958
+ 314492.88 .2494264 .0136782
+ 314517.06 .2347887 .0134314
+ 314541.25 .2325265 .0129272
+ 314565.47 .2820008 .0155307
+ 314589.72 .2591717 .0144156
+ 314613.94 .2448420 .0138502
+ 314638.12 .2152452 .0125401
+ 314662.41 .2657998 .0148890
+ 314686.62 .2620818 .0149418
+ 314710.84 .2515480 .0143668
+ 314735.06 .2397550 .0138206
+ 314759.34 .2516078 .0144699
+ 314783.56 .2528704 .0143719
+ 314807.78 .2399863 .0136759
+ 314832.06 .2307105 .0128407
+ 314856.31 .2558204 .0136840
+ 314880.56 .2306098 .0129351
+ 314904.78 .2531620 .0139873
+ 314929.09 .2569186 .0142260
+ 314953.34 .2521705 .0143749
+ 314977.59 .2501273 .0140052
+ 315001.88 .2483723 .0144243
+ 315026.16 .2307164 .0133866
+ 315050.41 .2411182 .0138293
+ 315074.66 .2576817 .0145239
+ 315098.97 .2410679 .0134408
+ 315123.25 .2331351 .0132772
+ 315147.53 .2149610 .0125997
+ 315171.84 .2431633 .0134712
+ 315196.12 .2829486 .0153882
+ 315220.41 .2442063 .0138402
+ 315244.69 .2614884 .0143061
+ 315269.00 .2550301 .0140463
+ 315293.28 .2437139 .0135650
+ 315317.59 .2367464 .0132096
+ 315341.94 .2466775 .0138296
+ 315366.22 .2385813 .0132679
+ 315390.53 .2673887 .0147706
+ 315414.81 .2712841 .0147593
+ 315439.16 .2401120 .0134690
+ 315463.47 .2736957 .0149870
+ 315487.78 .2634424 .0148330
+ 315512.16 .2471270 .0136346
+ 315536.47 .2399428 .0132674
+ 315560.78 .2324875 .0128680
+ 315585.09 .2474118 .0134669
+ 315609.47 .2427216 .0130005
+ 315633.81 .2523165 .0134689
+ 315658.12 .2330873 .0126456
+ 315682.50 .2540317 .0132867
+ 315706.84 .2422586 .0134577
+ 315731.19 .2528579 .0133829
+ 315755.56 .2355116 .0130305
+ 315779.91 .2478922 .0133181
+ 315804.25 .2358812 .0136792
+ 315828.62 .2512383 .0144123
+ 315853.00 .2308168 .0135409
+ 315877.38 .2567149 .0149993
+ 315901.72 .2554310 .0152605
+ 315926.12 .2609927 .0150398
+ 315950.50 .2351605 .0135668
+ 315974.88 .2352483 .0137031
+ 315999.22 .2465881 .0138392
+ 316023.66 .2620011 .0148700
+ 316048.03 .2468877 .0140302
+ 316072.41 .2498605 .0143547
+ 316096.84 .2482236 .0141332
+ 316121.22 .2654283 .0148013
+ 316145.59 .2404138 .0137831
+ 316170.00 .2370724 .0137089
+ 316194.44 .2424228 .0138826
+ 316218.81 .2674679 .0148378
+ 316243.22 .2486202 .0141752
+ 316267.66 .2536644 .0143432
+ 316292.06 .2378383 .0136305
+ 316316.47 .2510276 .0143327
+ 316340.88 .2610275 .0147087
+ 316365.34 .2564965 .0147591
+ 316389.75 .2748948 .0154457
+ 316414.19 .2582854 .0145951
+ 316438.66 .2248972 .0133626
+ 316463.06 .2336951 .0139233
+ 316487.50 .2341283 .0136617
+ 316511.91 .2209913 .0128406
+ 316536.41 .2584945 .0146902
+ 316560.84 .2421282 .0138313
+ 316585.28 .2570202 .0143863
+ 316609.75 .2404854 .0136148
+ 316634.19 .2460137 .0134781
+ 316658.66 .2363933 .0129458
+ 316683.09 .2413246 .0133692
+ 316707.59 .2513262 .0138123
+ 316732.03 .2246241 .0126833
+ 316756.50 .2526064 .0136089
+ 316781.00 .2814456 .0154323
+ 316805.47 .2373473 .0132478
+ 316829.94 .2485768 .0136970
+ 316854.41 .2347062 .0130366
+ 316878.94 .2509943 .0144461
+ 316903.41 .2481579 .0138485
+ 316927.88 .2369795 .0132833
+ 316952.41 .2529133 .0139124
+ 316976.88 .2403472 .0137468
+ 317001.38 .2548794 .0140072
+ 317025.84 .2418105 .0133137
+ 317050.41 .2405132 .0134947
+ 317074.88 .2362049 .0133233
+ 317099.38 .2525577 .0140237
+ 317123.94 .2527448 .0138871
+ 317148.44 .2727368 .0148657
+ 317172.94 .2610052 .0147072
+ 317197.44 .2487648 .0139025
+ 317222.00 .2486288 .0139704
+ 317246.53 .2557957 .0142457
+ 317271.03 .2572172 .0137973
+ 317295.59 .2518854 .0141336
+ 317320.12 .2360761 .0131669
+ 317344.66 .2224808 .0126187
+ 317369.22 .2753645 .0150012
+ 317393.75 .2574712 .0139814
+ 317418.28 .2563298 .0141434
+ 317442.81 .2412013 .0134938
+ 317467.41 .2694593 .0148716
+ 317491.94 .2673435 .0152880
+ 317516.50 .2443233 .0138165
+ 317541.09 .2348676 .0138460
+ 317565.66 .2299904 .0137070
+ 317590.19 .2447320 .0145120
+ 317614.75 .2298672 .0137866
+ 317639.38 .2350086 .0137203
+ 317663.91 .2420500 .0141391
+ 317688.50 .2358899 .0135986
+ 317713.09 .2539204 .0144080
+ 317737.69 .2606483 .0146360
+ 317762.25 .2282488 .0127701
+ 317786.81 .2813401 .0149059
+ 317811.44 .2447238 .0133132
+ 317836.03 .2367130 .0133409
+ 317860.62 .2353892 .0131964
+ 317885.25 .2436264 .0133285
+ 317909.84 .2459256 .0134021
+ 317934.44 .2285123 .0128887
+ 317959.03 .2289584 .0127438
+ 317983.69 .2720629 .0144066
+ 318008.28 .2459422 .0132790
+ 318032.88 .2560815 .0138382
+ 318057.53 .2474286 .0134539
+ 318082.16 .2381766 .0131275
+ 318106.75 .2092849 .0121938
+ 318131.38 .2843398 .0152648
+ 318156.03 .2533161 .0141637
+ 318180.66 .2499402 .0142777
+ 318205.28 .2632342 .0142985
+ 318229.97 .2550285 .0143838
+ 318254.59 .2563782 .0145034
+ 318279.22 .2713527 .0154666
+ 318303.88 .2432488 .0140344
+ 318328.56 .2364171 .0138816
+ 318353.19 .2481063 .0147779
+ 318377.84 .2420542 .0146042
+ 318402.53 .2209534 .0132152
+ 318427.19 .2425990 .0141587
+ 318451.84 .2488969 .0148875
+ 318476.50 .2380741 .0145954
+ 318501.22 .2570776 .0152790
+ 318525.88 .2697431 .0154638
+ 318550.53 .2601914 .0149694
+ 318575.25 .2620360 .0145991
+ 318599.91 .2253189 .0130626
+ 318624.59 .2710441 .0148192
+ 318649.28 .2500471 .0136598
+ 318674.00 .2459370 .0131977
+ 318698.69 .2618451 .0139177
+ 318723.38 .2543655 .0133577
+ 318748.09 .2548721 .0132243
+ 318772.78 .2455758 .0132427
+ 318797.47 .2355933 .0125907
+ 318822.22 .2302523 .0123035
+ 318846.94 .2415009 .0130183
+ 318871.62 .2253746 .0124757
+ 318896.34 .2658057 .0140651
+ 318921.09 .2371871 .0129267
+ 318945.81 .2638795 .0141252
+ 318970.50 .2614709 .0140044
+ 318995.28 .2708957 .0144181
+ 319020.00 .2665105 .0142737
+ 319044.72 .2858658 .0146793
+ 319069.44 .2407864 .0131649
+ 319094.22 .2322009 .0127940
+ 319118.94 .2604544 .0139694
+ 319143.69 .2506660 .0139032
+ 319168.47 .2651119 .0146871
+ 319193.22 .2605620 .0146463
+ 319217.94 .2784719 .0151973
+ 319242.69 .2318116 .0133468
+ 319267.50 .2346550 .0131938
+ 319292.25 .2778234 .0148455
+ 319317.00 .2461485 .0137051
+ 319341.81 .2552884 .0135973
+ 319366.56 .2418108 .0125566
+ 319391.31 .2551700 .0132669
+ 319416.09 .2577817 .0133481
+ 319440.91 .2429916 .0124617
+ 319465.69 .2362064 .0123669
+ 319490.47 .2677795 .0134787
+ 319515.28 .2465092 .0128608
+ 319540.06 .2626947 .0139156
+ 319564.84 .2587723 .0139491
+ 319589.62 .2505684 .0134422
+ 319614.47 .2457759 .0132551
+ 319639.25 .2594940 .0143141
+ 319664.06 .2713466 .0146892
+ 319688.91 .2549804 .0141479
+ 319713.69 .2702574 .0151286
+ 319738.50 .2378228 .0134733
+ 319763.31 .2472945 .0143525
+ 319788.16 .2361165 .0130261
+ 319812.97 .2421848 .0137716
+ 319837.78 .2715124 .0149869
+ 319862.66 .2738196 .0151658
+ 319887.47 .2649391 .0146452
+ 319912.28 .2556146 .0143899
+ 319937.12 .2651697 .0148482
+ 319962.00 .2713522 .0151832
+ 319986.84 .2477338 .0139436
+ 320011.66 .2511119 .0141934
+ 320036.56 .2767274 .0153844
+ 320061.41 .2231202 .0127492
+ 320086.25 .2498649 .0139730
+ 320111.09 .2336125 .0133858
+ 320135.97 .2580584 .0144845
+ 320160.84 .2487928 .0142351
+ 320185.69 .2411725 .0139303
+ 320210.59 .2498478 .0141272
+ 320235.47 .2325411 .0130000
+ 320260.31 .2607288 .0141706
+ 320285.22 .2683408 .0148158
+ 320310.09 .2523411 .0143211
+ 320334.97 .2496425 .0144238
+ 320359.84 .2671779 .0148979
+ 320384.78 .2701390 .0154208
+ 320409.66 .2442935 .0141700
+ 320434.53 .2451062 .0145015
+ 320459.47 .2436659 .0139317
+ 320484.38 .2245702 .0132563
+ 320509.25 .2483543 .0136684
+ 320534.16 .2343371 .0133862
+ 320559.09 .2556808 .0140725
+ 320584.00 .2475538 .0137798
+ 320608.91 .2623851 .0143477
+ 320633.88 .2628397 .0141591
+ 320658.78 .2431925 .0134876
+ 320683.69 .2519940 .0137389
+ 320708.59 .2623734 .0142013
+ 320733.56 .2384600 .0135145
+ 320758.50 .2488287 .0135552
+ 320783.41 .2697910 .0142950
+ 320808.41 .2670777 .0140887
+ 320833.31 .2625259 .0143862
+ 320858.25 .2637576 .0141456
+ 320883.19 .2656402 .0143475
+ 320908.19 .2626346 .0140623
+ 320933.12 .2891070 .0151989
+ 320958.06 .2748606 .0144679
+ 320983.06 .2454360 .0133715
+ 321008.00 .2330397 .0130463
+ 321032.97 .2461563 .0140143
+ 321057.94 .2482532 .0140083
+ 321082.94 .2393795 .0135278
+ 321107.91 .2461131 .0137028
+ 321132.88 .2522947 .0147379
+ 321157.88 .2610678 .0147435
+ 321182.84 .2739120 .0152514
+ 321207.81 .2622641 .0152825
+ 321232.81 .2705359 .0157843
+ 321257.84 .2579057 .0150082
+ 321282.81 .2427574 .0143604
+ 321307.81 .2184807 .0131677
+ 321332.84 .2561948 .0148590
+ 321357.81 .2533676 .0146709
+ 321382.81 .2556708 .0148938
+ 321407.81 .2459783 .0140831
+ 321432.88 .2592873 .0144850
+ 321457.88 .2497208 .0140875
+ 321482.88 .2739647 .0150654
+ 321507.94 .2641431 .0144288
+ 321532.94 .2670451 .0148263
+ 321557.97 .2600971 .0144439
+ 321582.97 .2567983 .0139109
+ 321608.06 .2754130 .0144473
+ 321633.06 .2608242 .0142056
+ 321658.09 .2385122 .0128211
+ 321683.19 .2462674 .0127732
+ 321708.22 .2508902 .0132504
+ 321733.25 .2384278 .0126739
+ 321758.28 .2475237 .0130214
+ 321783.38 .2370497 .0126538
+ 321808.41 .2752567 .0143841
+ 321833.47 .2492977 .0133506
+ 321858.56 .2507085 .0135465
+ 321883.62 .2481291 .0130579
+ 321908.69 .2813935 .0147290
+ 321933.78 .2664739 .0141741
+ 321958.84 .2556526 .0138396
+ 321983.91 .2637720 .0139814
+ 322008.97 .2403939 .0131962
+ 322034.09 .2452623 .0136784
+ 322059.16 .2565428 .0136740
+ 322084.25 .2376769 .0126537
+ 322109.38 .2731114 .0142545
+ 322134.47 .2262084 .0127702
+ 322159.53 .2560458 .0133949
+ 322184.62 .2505697 .0134287
+ 322209.78 .2494569 .0132413
+ 322234.88 .2511383 .0138149
+ 322259.97 .2691740 .0142984
+ 322285.09 .2346037 .0125816
+ 322310.22 .2619019 .0136193
+ 322335.31 .2574348 .0132415
+ 322360.44 .2449483 .0123275
+ 322385.59 .2473522 .0126362
+ 322410.69 .2687796 .0131435
+ 322435.81 .2501017 .0126365
+ 322461.00 .2595253 .0128894
+ 322486.12 .2550170 .0128195
+ 322511.25 .2677450 .0140359
+ 322536.38 .2604421 .0138861
+ 322561.56 .2268342 .0127519
+ 322586.69 .2515646 .0136978
+ 322611.81 .2588987 .0146349
+ 322637.00 .2606684 .0144496
+ 322662.16 .2636498 .0148952
+ 322687.31 .2388649 .0134642
+ 322712.44 .2601252 .0142201
+ 322737.66 .2487295 .0139306
+ 322762.81 .2626223 .0144221
+ 322787.97 .2497211 .0135968
+ 322813.19 .2237755 .0126725
+ 322838.34 .2596048 .0138756
+ 322863.50 .2463132 .0134968
+ 322888.69 .2596821 .0139217
+ 322913.91 .2443402 .0134586
+ 322939.09 .2537093 .0135948
+ 322964.25 .2493620 .0136026
+ 322989.50 .2411209 .0131857
+ 323014.69 .2480556 .0140268
+ 323039.88 .2538938 .0140936
+ 323065.06 .2382041 .0134216
+ 323090.31 .2621792 .0144543
+ 323115.50 .2386668 .0133024
+ 323140.69 .2464340 .0137834
+ 323165.94 .2343372 .0133090
+ 323191.16 .2417161 .0134524
+ 323216.38 .2459514 .0134176
+ 323241.56 .2863660 .0153613
+ 323266.84 .2694704 .0144853
+ 323292.06 .2419233 .0129910
+ 323317.28 .2424030 .0131142
+ 323342.56 .2512420 .0135519
+ 323367.78 .2468126 .0134293
+ 323393.00 .2659783 .0144850
+ 323418.28 .2623492 .0141855
+ 323443.53 .2390360 .0128270
+ 323468.75 .2801475 .0143900
+ 323494.00 .2514167 .0129942
+ 323519.28 .2566024 .0134412
+ 323544.53 .2456434 .0131003
+ 323569.78 .2583738 .0137055
+ 323595.09 .2437932 .0131731
+ 323620.34 .2409092 .0132426
+ 323645.62 .2616792 .0144226
+ 323670.88 .2570604 .0140858
+ 323696.19 .2386039 .0133426
+ 323721.47 .2391204 .0136983
+ 323746.72 .2797886 .0151890
+ 323772.06 .2696015 .0145365
+ 323797.31 .2566916 .0139184
+ 323822.59 .2643527 .0139629
+ 323847.88 .2561121 .0133231
+ 323873.22 .2531007 .0126977
+ 323898.50 .2689542 .0138007
+ 323923.81 .2703037 .0137818
+ 323949.16 .2786024 .0141972
+ 323974.44 .2590345 .0135109
+ 323999.75 .2721089 .0138760
+ 324025.06 .2616508 .0132977
+ 324050.41 .2442484 .0128995
+ 324075.72 .2550895 .0130670
+ 324101.03 .2409314 .0128907
+ 324126.38 .2707513 .0136162
+ 324151.72 .2687918 .0133534
+ 324177.03 .2630584 .0130917
+ 324202.34 .2538104 .0130514
+ 324227.72 .2451452 .0125881
+ 324253.06 .2486533 .0127124
+ 324278.41 .2473380 .0130355
+ 324303.78 .2717910 .0137962
+ 324329.12 .2452643 .0128853
+ 324354.47 .2919180 .0148328
+ 324379.81 .2622644 .0139162
+ 324405.19 .2768754 .0140094
+ 324430.56 .2874693 .0147488
+ 324455.91 .2551571 .0132910
+ 324481.31 .2637775 .0140361
+ 324506.69 .2361678 .0129732
+ 324532.03 .2553951 .0135504
+ 324557.41 .2589164 .0137654
+ 324582.81 .2660180 .0139577
+ 324608.19 .2685642 .0145884
+ 324633.56 .2597201 .0139657
+ 324659.00 .2381171 .0128496
+ 324684.38 .2476124 .0131943
+ 324709.75 .2600307 .0138336
+ 324735.16 .2842699 .0150576
+ 324760.59 .2524378 .0137952
+ 324785.97 .2849115 .0147934
+ 324811.38 .2665743 .0139519
+ 324836.81 .2663198 .0141099
+ 324862.22 .2489519 .0131330
+ 324887.62 .2490668 .0132831
+ 324913.03 .2619721 .0139119
+ 324938.50 .2440897 .0130578
+ 324963.91 .2796085 .0145938
+ 324989.31 .2572078 .0138104
+ 325014.78 .2262055 .0123784
+ 325040.22 .2642487 .0142895
+ 325065.66 .2295240 .0126261
+ 325091.12 .2598674 .0135609
+ 325116.56 .2662512 .0143855
+ 325142.00 .2313618 .0126186
+ 325167.44 .2611413 .0139702
+ 325192.91 .2716826 .0144804
+ 325218.34 .2583519 .0139369
+ 325243.81 .2489198 .0130549
+ 325269.31 .2506940 .0135318
+ 325294.75 .2540900 .0138271
+ 325320.22 .2662036 .0143110
+ 325345.66 .2745260 .0151793
+ 325371.19 .2850115 .0151604
+ 325396.66 .2695224 .0148755
+ 325422.12 .2496973 .0138714
+ 325447.62 .2533028 .0140710
+ 325473.09 .2536956 .0143450
+ 325498.59 .2681942 .0149156
+ 325524.06 .2800559 .0157144
+ 325549.59 .2581867 .0145564
+ 325575.06 .2486269 .0137883
+ 325600.56 .2504263 .0140088
+ 325626.09 .2485028 .0139008
+ 325651.59 .2472005 .0137125
+ 325677.09 .2531950 .0138716
+ 325702.59 .2395967 .0132311
+ 325728.16 .2657521 .0144414
+ 325753.66 .2606616 .0142833
+ 325779.16 .2603346 .0142185
+ 325804.72 .2682226 .0143936
+ 325830.25 .2520835 .0135490
+ 325855.75 .2710847 .0142651
+ 325881.28 .2521703 .0133934
+ 325906.84 .2547784 .0133953
+ 325932.38 .2603904 .0136827
+ 325957.91 .2525699 .0131487
+ 325983.50 .2543023 .0135770
+ 326009.03 .2421114 .0134335
+ 326034.56 .2694516 .0143570
+ 326060.12 .2395585 .0129923
+ 326085.72 .2581182 .0136236
+ 326111.25 .2241929 .0122932
+ 326136.81 .2678072 .0138076
+ 326162.41 .2556964 .0129964
+ 326187.97 .2720734 .0138616
+ 326213.53 .2701067 .0137337
+ 326239.09 .2608404 .0132858
+ 326264.72 .2580740 .0129963
+ 326290.28 .2475377 .0128853
+ 326315.84 .2588746 .0130427
+ 326341.47 .2676017 .0133189
+ 326367.06 .2849267 .0140738
+ 326392.62 .2640312 .0133307
+ 326418.22 .2465095 .0122867
+ 326443.84 .2444240 .0123082
+ 326469.44 .2720421 .0136676
+ 326495.03 .2460170 .0128558
+ 326520.69 .2710136 .0140758
+ 326546.28 .2629749 .0136581
+ 326571.88 .2755061 .0143197
+ 326597.53 .2566868 .0139608
+ 326623.16 .2725825 .0141962
+ 326648.75 .2487540 .0132772
+ 326674.38 .2714000 .0143522
+ 326700.06 .2644713 .0139835
+ 326725.66 .2603599 .0140053
+ 326751.28 .2776461 .0146377
+ 326776.97 .2672392 .0145200
+ 326802.59 .2754382 .0149755
+ 326828.22 .2486728 .0135033
+ 326853.88 .2419120 .0130838
+ 326879.56 .2304634 .0126849
+ 326905.19 .2622320 .0137030
+ 326930.84 .2566519 .0136806
+ 326956.53 .2544064 .0130746
+ 326982.19 .2665640 .0136225
+ 327007.84 .2488957 .0130913
+ 327033.50 .2705734 .0140365
+ 327059.22 .2678703 .0134605
+ 327084.88 .2639230 .0141278
+ 327110.53 .2506277 .0133520
+ 327136.25 .2673107 .0141297
+ 327161.94 .2904234 .0158140
+ 327187.59 .2600540 .0140710
+ 327213.28 .2645963 .0148591
+ 327239.00 .2673051 .0144948
+ 327264.69 .2616487 .0139056
+ 327290.38 .2441049 .0134293
+ 327316.12 .2865636 .0151844
+ 327341.81 .2773460 .0144703
+ 327367.50 .2566044 .0138565
+ 327393.22 .2724212 .0144978
+ 327418.97 .2591942 .0135716
+ 327444.66 .2719740 .0141075
+ 327470.38 .2322921 .0123771
+ 327496.12 .2528650 .0133701
+ 327521.84 .2606492 .0135568
+ 327547.56 .2570736 .0133306
+ 327573.28 .2547557 .0130592
+ 327599.06 .2631074 .0135531
+ 327624.78 .2767726 .0143304
+ 327650.53 .2903254 .0147007
+ 327676.31 .2358576 .0125684
+ 327702.03 .2591908 .0136887
+ 327727.78 .2376569 .0128212
+ 327753.53 .2699348 .0148095
+ 327779.31 .2506909 .0136150
+ 327805.06 .2420460 .0135928
+ 327830.81 .2605218 .0145958
+ 327856.62 .2670790 .0146590
+ 327882.38 .2599861 .0144986
+ 327908.12 .2507778 .0140467
+ 327933.91 .2723942 .0142641
+ 327959.72 .2674898 .0141542
+ 327985.47 .2678168 .0139615
+ 328011.25 .2782158 .0145903
+ 328037.06 .2480520 .0130027
+ 328062.84 .2733352 .0139606
+ 328088.62 .2657444 .0139279
+ 328114.47 .2365955 .0125001
+ 328140.25 .2713896 .0142299
+ 328166.03 .2768731 .0145905
+ 328191.84 .2539175 .0132418
+ 328217.69 .2522833 .0135070
+ 328243.50 .2539095 .0136343
+ 328269.28 .2577789 .0135120
+ 328295.16 .2516050 .0134251
+ 328320.94 .2473326 .0132566
+ 328346.75 .2692834 .0141024
+ 328372.56 .2792815 .0143640
+ 328398.44 .2534249 .0134171
+ 328424.25 .2508357 .0134047
+ 328450.09 .2537778 .0135047
+ 328475.97 .2539150 .0130575
+ 328501.78 .2711243 .0145592
+ 328527.62 .2539787 .0133727
+ 328553.47 .2827207 .0148232
+ 328579.34 .2784763 .0147861
+ 328605.19 .2630998 .0141048
+ 328631.03 .2693662 .0147887
+ 328656.94 .2655641 .0144737
+ 328682.78 .3112710 .0165668
+ 328708.66 .2691382 .0146539
+ 328734.50 .2588899 .0146666
+ 328760.41 .2390088 .0133535
+ 328786.28 .2622062 .0147205
+ 328812.16 .2990451 .0162818
+ 328838.06 .2730742 .0148269
+ 328863.94 .2376198 .0134600
+ 328889.81 .2533941 .0139279
+ 328915.69 .2899340 .0152073
+ 328941.62 .2682623 .0142562
+ 328967.50 .2491886 .0129225
+ 328993.41 .2533298 .0133335
+ 329019.34 .2502689 .0128900
+ 329045.22 .2817229 .0144325
+ 329071.12 .2696452 .0137797
+ 329097.03 .2684992 .0141751
+ 329122.97 .2549851 .0137560
+ 329148.88 .2529629 .0136863
+ 329174.78 .2878373 .0150795
+ 329200.75 .2737097 .0143842
+ 329226.66 .2591550 .0141883
+ 329252.59 .2630303 .0138294
+ 329278.50 .2753522 .0145114
+ 329304.50 .2744038 .0144399
+ 329330.41 .2739619 .0146636
+ 329356.34 .2646911 .0141334
+ 329382.34 .2513306 .0137977
+ 329408.25 .2654626 .0144086
+ 329434.22 .2754427 .0152696
+ 329460.16 .2775530 .0150334
+ 329486.16 .2631733 .0146250
+ 329512.09 .2673593 .0148462
+ 329538.03 .2671811 .0148036
+ 329564.06 .2484304 .0136585
+ 329590.00 .2574466 .0136223
+ 329615.97 .2674445 .0143312
+ 329641.94 .2461022 .0132886
+ 329667.94 .2826088 .0149273
+ 329693.94 .2878193 .0148483
+ 329719.91 .2668493 .0140746
+ 329745.94 .2706083 .0141959
+ 329771.91 .2837349 .0143628
+ 329797.88 .2688836 .0143220
+ 329823.94 .2697314 .0143187
+ 329849.91 .2617188 .0140056
+ 329875.91 .2548234 .0139449
+ 329901.91 .2657324 .0139933
+ 329927.94 .2613041 .0139663
+ 329953.94 .2630726 .0144057
+ 329979.97 .2656167 .0139465
+ 330006.00 .2624132 .0145763
+ 330032.03 .2592185 .0145118
+ 330058.03 .2559168 .0140872
+ 330084.06 .2546492 .0142646
+ 330110.12 .2582648 .0136854
+ 330136.16 .2474064 .0130778
+ 330162.16 .2878089 .0147301
+ 330188.25 .2672850 .0133803
+ 330214.28 .2600509 .0130423
+ 330240.31 .2427752 .0121161
+ 330266.34 .2629113 .0126888
+ 330292.44 .2625678 .0129318
+ 330318.50 .2606784 .0129113
+ 330344.53 .2511509 .0126409
+ 330370.66 .2670408 .0133777
+ 330396.69 .2863279 .0146292
+ 330422.75 .2814258 .0141664
+ 330448.81 .2463821 .0130542
+ 330474.94 .2570871 .0135219
+ 330501.00 .2515501 .0134217
+ 330527.06 .2403837 .0133094
+ 330553.19 .2539384 .0139329
+ 330579.25 .2931317 .0154738
+ 330605.34 .2596868 .0140623
+ 330631.41 .2518836 .0135094
+ 330657.56 .2775245 .0150316
+ 330683.66 .2607858 .0135650
+ 330709.72 .2833026 .0146302
+ 330735.88 .2349205 .0124988
+ 330761.97 .2496733 .0130876
+ 330788.06 .2555249 .0133889
+ 330814.19 .2471860 .0130262
+ 330840.34 .2818946 .0144682
+ 330866.44 .2608345 .0134925
+ 330892.56 .2635872 .0137458
+ 330918.72 .2826172 .0145113
+ 330944.84 .2616935 .0136067
+ 330970.97 .2951267 .0148701
+ 330997.09 .2678800 .0135789
+ 331023.25 .2786439 .0146027
+ 331049.41 .2573754 .0132016
+ 331075.53 .2646481 .0134019
+ 331101.72 .2559887 .0130134
+ 331127.84 .2511568 .0129545
+ 331154.00 .2361991 .0127314
+ 331180.16 .2765962 .0142168
+ 331206.34 .2781531 .0141955
+ 331232.50 .2887354 .0144352
+ 331258.66 .2586897 .0135928
+ 331284.88 .2583939 .0133720
+ 331311.03 .2766114 .0142049
+ 331337.19 .2574643 .0133914
+ 331363.41 .2647776 .0140156
+ 331389.59 .2545758 .0132561
+ 331415.75 .2420292 .0128798
+ 331441.94 .2769534 .0141496
+ 331468.16 .2632024 .0136337
+ 331494.34 .2893005 .0149505
+ 331520.53 .2484750 .0128922
+ 331546.78 .2634123 .0134488
+ 331572.97 .2682567 .0138722
+ 331599.16 .2627652 .0136076
+ 331625.38 .2480777 .0128685
+ 331651.62 .2497738 .0131955
+ 331677.81 .2742243 .0141010
+ 331704.03 .2763348 .0142139
+ 331730.28 .2925895 .0150547
+ 331756.50 .2817005 .0143803
+ 331782.72 .2549693 .0134326
+ 331808.94 .2528139 .0132639
+ 331835.22 .2635244 .0138990
+ 331861.44 .2681749 .0140750
+ 331887.69 .2538616 .0133270
+ 331913.97 .2536040 .0131362
+ 331940.19 .2670287 .0138370
+ 331966.44 .2680264 .0138584
+ 331992.69 .2604460 .0136341
+ 332018.97 .2655092 .0136584
+ 332045.22 .2590426 .0133488
+ 332071.47 .2517430 .0130745
+ 332097.78 .2988219 .0150242
+ 332124.03 .2625739 .0132111
+ 332150.31 .2612086 .0134037
+ 332176.56 .2473469 .0128130
+ 332202.88 .2521758 .0125240
+ 332229.16 .2542187 .0125652
+ 332255.44 .2479120 .0123884
+ 332281.75 .2628340 .0128612
+ 332308.03 .2740225 .0130611
+ 332334.31 .2339169 .0115216
+ 332360.62 .2659535 .0130481
+ 332386.94 .2716102 .0131222
+ 332413.25 .2902877 .0135922
+ 332439.53 .2860237 .0137694
+ 332465.88 .2591684 .0128035
+ 332492.19 .2719552 .0132581
+ 332518.50 .3004370 .0147304
+ 332544.81 .2599019 .0130111
+ 332571.16 .2720025 .0137244
+ 332597.47 .2571999 .0129342
+ 332623.81 .2646295 .0134008
+ 332650.16 .2604065 .0131200
+ 332676.50 .2717581 .0135237
+ 332702.81 .2570342 .0131099
+ 332729.16 .2632308 .0136228
+ 332755.53 .2818278 .0145159
+ 332781.88 .2831249 .0144647
+ 332808.22 .2654072 .0143184
+ 332834.59 .2582943 .0137272
+ 332860.94 .2460116 .0130189
+ 332887.31 .2667025 .0139333
+ 332913.66 .2697057 .0138203
+ 332940.06 .2628428 .0133913
+ 332966.41 .2963082 .0151188
+ 332992.78 .2659379 .0136839
+ 333019.19 .2459235 .0125987
+ 333045.56 .2723715 .0141054
+ 333071.94 .2771477 .0141736
+ 333098.34 .2741823 .0139858
+ 333124.72 .2619536 .0132916
+ 333151.12 .2734655 .0138459
+ 333177.50 .2293499 .0121372
+ 333203.94 .2477925 .0128274
+ 333230.31 .2731949 .0138542
+ 333256.72 .2610811 .0132524
+ 333283.16 .2611569 .0133522
+ 333309.56 .2486237 .0130245
+ 333335.97 .2808518 .0144576
+ 333362.38 .2705384 .0137955
+ 333388.84 .2749984 .0142240
+ 333415.25 .2820881 .0144926
+ 333441.66 .2718209 .0136901
+ 333468.12 .2609380 .0133999
+ 333494.53 .2730705 .0139079
+ 333520.97 .2704943 .0135312
+ 333547.41 .2614197 .0128990
+ 333573.88 .2657746 .0132930
+ 333600.31 .2767124 .0138210
+ 333626.75 .2648603 .0134024
+ 333653.25 .2898508 .0143451
+ 333679.69 .2866026 .0141352
+ 333706.12 .2579415 .0133450
+ 333732.59 .2867991 .0143829
+ 333759.09 .2616523 .0132388
+ 333785.53 .2454524 .0126531
+ 333812.00 .2613961 .0134762
+ 333838.50 .2568252 .0128563
+ 333864.97 .2891876 .0145345
+ 333891.44 .2593679 .0133314
+ 333917.91 .2683957 .0135615
+ 333944.44 .2755084 .0138099
+ 333970.91 .2635677 .0136681
+ 333997.41 .2672791 .0139161
+ 334023.94 .2661361 .0136215
+ 334050.41 .2589203 .0137119
+ 334076.91 .2935903 .0151147
+ 334103.41 .2864768 .0148474
+ 334129.94 .2756015 .0146233
+ 334156.44 .2650846 .0140750
+ 334182.97 .2460199 .0134499
+ 334209.50 .2741724 .0145079
+ 334236.03 .2482618 .0129530
+ 334262.53 .2532600 .0132780
+ 334289.06 .2652065 .0133756
+ 334315.62 .2514271 .0130312
+ 334342.16 .2731392 .0136493
+ 334368.66 .2879835 .0145628
+ 334395.25 .2475312 .0129340
+ 334421.78 .2672934 .0141693
+ 334448.31 .2635703 .0140232
+ 334474.84 .2862645 .0146126
+ 334501.44 .2631924 .0137608
+ 334528.00 .2812822 .0145222
+ 334554.53 .2959933 .0153129
+ 334581.12 .2669848 .0135985
+ 334607.69 .2824922 .0142652
+ 334634.25 .2676559 .0137113
+ 334660.84 .2513368 .0130014
+ 334687.41 .2618554 .0134911
+ 334714.00 .2556861 .0132478
+ 334740.56 .2764234 .0139828
+ 334767.19 .2673365 .0138937
+ 334793.75 .2879784 .0146759
+ 334820.34 .2826111 .0144342
+ 334846.97 .2602153 .0134930
+ 334873.56 .2576701 .0139650
+ 334900.12 .2879845 .0149923
+ 334926.72 .2411292 .0133276
+ 334953.38 .2712926 .0143182
+ 334979.97 .2727610 .0146463
+ 335006.56 .2654219 .0139744
+ 335033.22 .2522106 .0133043
+ 335059.84 .2624992 .0139304
+ 335086.44 .2578106 .0138752
+ 335113.06 .2383635 .0130548
+ 335139.72 .2568786 .0136541
+ 335166.34 .2564591 .0138473
+ 335192.97 .2761232 .0144632
+ 335219.66 .2599505 .0138557
+ 335246.28 .2657286 .0143816
+ 335272.91 .2711411 .0143774
+ 335299.56 .2747242 .0146395
+ 335326.25 .2710416 .0140903
+ 335352.88 .2794126 .0150310
+ 335379.53 .2502660 .0136024
+ 335406.22 .2602558 .0139154
+ 335432.88 .2632425 .0136740
+ 335459.53 .2369085 .0121507
+ 335486.19 .2618600 .0129023
+ 335512.91 .2421259 .0121432
+ 335539.56 .2685550 .0133396
+ 335566.25 .2591262 .0130002
+ 335592.97 .2374811 .0119951
+ 335619.62 .2702952 .0139684
+ 335646.31 .2506746 .0128900
+ 335673.00 .2659420 .0139005
+ 335699.72 .2608405 .0135936
+ 335726.41 .2504362 .0135294
+ 335753.09 .2684101 .0144478
+ 335779.84 .2497016 .0131526
+ 335806.53 .2566557 .0132685
+ 335833.25 .2273501 .0122274
+ 335859.94 .2651263 .0136730
+ 335886.72 .2704088 .0139245
+ 335913.41 .2637781 .0137444
+ 335940.12 .2180735 .0116992
+ 335966.91 .2641186 .0137264
+ 335993.62 .2549748 .0133685
+ 336020.34 .2439814 .0129986
+ 336047.06 .2568057 .0136096
+ 336073.84 .2543179 .0134321
+ 336100.56 .2608241 .0141188
+ 336127.31 .2583327 .0141364
+ 336154.09 .2523708 .0136078
+ 336180.84 .2564051 .0140297
+ 336207.59 .2305021 .0125784
+ 336234.31 .2423438 .0131512
+ 336261.12 .2592243 .0135220
+ 336287.88 .2338481 .0123346
+ 336314.62 .2590535 .0132764
+ 336341.44 .2547114 .0133145
+ 336368.22 .2354584 .0121456
+ 336394.97 .2486969 .0129666
+ 336421.81 .2381116 .0123962
+ 336448.56 .2289795 .0119714
+ 336475.34 .2453846 .0128302
+ 336502.12 .2196673 .0118085
+ 336528.97 .2453482 .0130171
+ 336555.75 .2300180 .0126431
+ 336582.53 .2523260 .0134691
+ 336609.38 .2254601 .0123319
+ 336636.19 .2262677 .0121360
+ 336662.97 .2387049 .0126651
+ 336689.78 .2398336 .0128364
+ 336716.62 .2207208 .0120380
+ 336743.44 .2375388 .0121990
+ 336770.25 .2499661 .0130301
+ 336797.12 .2194254 .0116840
+ 336823.94 .2614885 .0133237
+ 336850.75 .2169127 .0114619
+ 336877.59 .2128501 .0110519
+ 336904.47 .2334385 .0122373
+ 336931.28 .2278391 .0116988
+ 336958.12 .2603277 .0132319
+ 336985.03 .2531557 .0128021
+ 337011.84 .2292018 .0116902
+ 337038.69 .2229998 .0113524
+ 337065.56 .2410645 .0121363
+ 337092.44 .2252619 .0114619
+ 337119.31 .2275642 .0117385
+ 337146.16 .2273167 .0117128
+ 337173.06 .2422918 .0121527
+ 337199.94 .2402571 .0121886
+ 337226.81 .2231924 .0114716
+ 337253.66 .2333519 .0120675
+ 337280.59 .2313226 .0118914
+ 337307.47 .2395016 .0122343
+ 337334.34 .2078577 .0111164
+ 337361.28 .2323654 .0124831
+ 337388.16 .2215331 .0118235
+ 337415.06 .2355625 .0126013
+ 337441.94 .2308844 .0126291
+ 337468.91 .2434749 .0131668
+ 337495.78 .2277074 .0127353
+ 337522.69 .2656264 .0145819
+ 337549.66 .2490368 .0138290
+ 337576.56 .2593861 .0144444
+ 337603.47 .2277241 .0129567
+ 337630.38 .2343713 .0129160
+ 337657.34 .2517942 .0134099
+ 337684.28 .2562510 .0136559
+ 337711.19 .2571859 .0134251
+ 337738.19 .2354493 .0123575
+ 337765.09 .2578259 .0134635
+ 337792.03 .2623380 .0131859
+ 337818.97 .2655115 .0134879
+ 337845.97 .2520584 .0126043
+ 337872.91 .2708121 .0137628
+ 337899.84 .2516775 .0127390
+ 337926.84 .2661676 .0133042
+ 337953.81 .2525786 .0131491
+ 337980.78 .2183172 .0116653
+ 338007.78 .2580026 .0133734
+ 338034.75 .2498156 .0133022
+ 338061.72 .2479324 .0131873
+ 338088.69 .2395343 .0130313
+ 338115.69 .2653057 .0140749
+ 338142.69 .2345370 .0121958
+ 338169.66 .2444106 .0126988
+ 338196.69 .2722855 .0138862
+ 338223.69 .2590817 .0132660
+ 338250.66 .2437031 .0125148
+ 338277.66 .2484583 .0128789
+ 338304.69 .2481340 .0128840
+ 338331.69 .2883941 .0143554
+ 338358.69 .2728481 .0136441
+ 338385.75 .2592137 .0131316
+ 338412.75 .2634955 .0136009
+ 338439.78 .2743897 .0140981
+ 338466.78 .2799048 .0141016
+ 338493.84 .2584963 .0133286
+ 338520.88 .2542039 .0133476
+ 338547.91 .2786524 .0145090
+ 338574.97 .2536178 .0131615
+ 338602.00 .2454383 .0131534
+ 338629.03 .2634138 .0139727
+ 338656.09 .2408634 .0132395
+ 338683.19 .2641837 .0139927
+ 338710.22 .2874238 .0148909
+ 338737.25 .2415390 .0131285
+ 338764.38 .2463424 .0130388
+ 338791.41 .3021100 .0153721
+ 338818.47 .2662755 .0138686
+ 338845.53 .2676859 .0135200
+ 338872.66 .2558435 .0134595
+ 338899.72 .2518630 .0132575
+ 338926.78 .2473347 .0128729
+ 338953.91 .2584621 .0136707
+ 338981.00 .2802280 .0142431
+ 339008.06 .2643918 .0140872
+ 339035.16 .2600654 .0139450
+ 339062.28 .2595280 .0138706
+ 339089.38 .2726781 .0147870
+ 339116.47 .2920232 .0151277
+ 339143.62 .2817298 .0151608
+ 339170.72 .2651646 .0141072
+ 339197.81 .2794934 .0146678
+ 339224.91 .2635142 .0142434
+ 339252.09 .2539324 .0134874
+ 339279.19 .2543049 .0132774
+ 339306.31 .2869193 .0146642
+ 339333.47 .2761011 .0144349
+ 339360.59 .2668869 .0138411
+ 339387.72 .2631641 .0139574
+ 339414.84 .2928616 .0152741
+ 339442.03 .2787379 .0148445
+ 339469.16 .2815060 .0147628
+ 339496.31 .2462427 .0132835
+ 339523.50 .2819401 .0145485
+ 339550.66 .2606194 .0135045
+ 339577.78 .2635657 .0135063
+ 339605.00 .2537991 .0129908
+ 339632.16 .2638601 .0136351
+ 339659.31 .2863166 .0139160
+ 339686.47 .2576063 .0125154
+ 339713.69 .2534148 .0129212
+ 339740.84 .2825293 .0140988
+ 339768.03 .2724245 .0139190
+ 339795.25 .3019964 .0151852
+ 339822.44 .2566617 .0133557
+ 339849.59 .2449257 .0131352
+ 339876.78 .2561805 .0132402
+ 339904.03 .2795326 .0141774
+ 339931.22 .2610233 .0132372
+ 339958.41 .2465877 .0126727
+ 339985.66 .2707950 .0136539
+ 340012.84 .2701922 .0136902
+ 340040.06 .2483008 .0126684
+ 340067.28 .2878850 .0144950
+ 340094.53 .2792466 .0140033
+ 340121.75 .2634102 .0132827
+ 340148.97 .2628167 .0136231
+ 340176.22 .2720757 .0137405
+ 340203.44 .2813386 .0140772
+ 340230.69 .2474170 .0127098
+ 340257.91 .2428847 .0121975
+ 340285.19 .2530597 .0130188
+ 340312.44 .2885843 .0143902
+ 340339.66 .2561459 .0128619
+ 340366.97 .2764597 .0139007
+ 340394.22 .2602770 .0131702
+ 340421.44 .2539814 .0128272
+ 340448.72 .2871908 .0139765
+ 340476.00 .2410582 .0122128
+ 340503.28 .2692369 .0132451
+ 340530.53 .2747955 .0131546
+ 340557.84 .2488417 .0121170
+ 340585.12 .2788391 .0134104
+ 340612.38 .2685365 .0133160
+ 340639.66 .2677401 .0132592
+ 340667.00 .2623775 .0132810
+ 340694.28 .2608902 .0132059
+ 340721.56 .2646522 .0136322
+ 340748.91 .2839330 .0145637
+ 340776.19 .2644987 .0136731
+ 340803.50 .2646606 .0138492
+ 340830.78 .2737462 .0138864
+ 340858.12 .2749501 .0140434
+ 340885.44 .2538876 .0129724
+ 340912.75 .2785316 .0141679
+ 340940.12 .2464448 .0127593
+ 340967.44 .2737178 .0140204
+ 340994.75 .2688782 .0136976
+ 341022.06 .2521921 .0129795
+ 341049.44 .2795261 .0139603
+ 341076.78 .2543665 .0128495
+ 341104.09 .2530907 .0125545
+ 341131.50 .2952296 .0146554
+ 341158.81 .2712952 .0140537
+ 341186.16 .2623586 .0135332
+ 341213.50 .2709659 .0136757
+ 341240.91 .2780224 .0139917
+ 341268.25 .2746552 .0136789
+ 341295.62 .2534958 .0129025
+ 341323.03 .2662227 .0131285
+ 341350.38 .2763974 .0136421
+ 341377.75 .2618829 .0128180
+ 341405.16 .2689890 .0132420
+ 341432.53 .2715454 .0133544
+ 341459.91 .2765845 .0135304
+ 341487.28 .2994325 .0141861
+ 341514.72 .2867589 .0136834
+ 341542.09 .2595065 .0124201
+ 341569.50 .2775732 .0134884
+ 341596.94 .2778727 .0134409
+ 341624.31 .2703406 .0130202
+ 341651.72 .2727101 .0129786
+ 341679.12 .2941107 .0139443
+ 341706.59 .2658988 .0128862
+ 341734.00 .2685432 .0131514
+ 341761.41 .2656497 .0134960
+ 341788.88 .2927291 .0144169
+ 341816.28 .2284631 .0119523
+ 341843.69 .2683635 .0134425
+ 341871.12 .2560838 .0130540
+ 341898.59 .2470687 .0126775
+ 341926.03 .2709251 .0136852
+ 341953.47 .2656860 .0136316
+ 341980.94 .2464331 .0123797
+ 342008.41 .2659695 .0135508
+ 342035.84 .2841311 .0141208
+ 342063.28 .2797806 .0139282
+ 342090.78 .2900519 .0139950
+ 342118.25 .2880613 .0140592
+ 342145.69 .2655359 .0131113
+ 342173.19 .2653991 .0132146
+ 342200.66 .2763426 .0135277
+ 342228.12 .2855920 .0139192
+ 342255.59 .2721941 .0130923
+ 342283.12 .2759997 .0138620
+ 342310.59 .2618301 .0128256
+ 342338.09 .2862999 .0137526
+ 342365.62 .2622561 .0128390
+ 342393.09 .2748495 .0133352
+ 342420.59 .2744958 .0132835
+ 342448.09 .2713891 .0132260
+ 342475.62 .2860582 .0138467
+ 342503.12 .2750696 .0138316
+ 342530.62 .2940115 .0143407
+ 342558.19 .2580213 .0126529
+ 342585.69 .2836443 .0137327
+ 342613.22 .2796950 .0135971
+ 342640.72 .2591625 .0127174
+ 342668.31 .2671981 .0129798
+ 342695.81 .2754167 .0135192
+ 342723.34 .2756100 .0135413
+ 342750.94 .2646737 .0132067
+ 342778.47 .2632394 .0132496
+ 342806.00 .2849325 .0138488
+ 342833.53 .2539636 .0129533
+ 342861.12 .2730575 .0137264
+ 342888.69 .2702224 .0130550
+ 342916.22 .2608519 .0128236
+ 342943.84 .2734162 .0133512
+ 342971.38 .2630748 .0127593
+ 342998.94 .2751811 .0135169
+ 343026.56 .2850259 .0135977
+ 343054.12 .2735264 .0129046
+ 343081.69 .2786924 .0134868
+ 343109.28 .2660396 .0128424
+ 343136.91 .2598565 .0128751
+ 343164.47 .2744865 .0132830
+ 343192.06 .2683264 .0129907
+ 343219.69 .2664273 .0128640
+ 343247.28 .2605322 .0123500
+ 343274.88 .2592530 .0125562
+ 343302.47 .2863647 .0133591
+ 343330.12 .2850044 .0131143
+ 343357.72 .2782374 .0130347
+ 343385.34 .2789921 .0132642
+ 343413.00 .2761030 .0132684
+ 343440.59 .2905967 .0137608
+ 343468.22 .2617978 .0131660
+ 343495.84 .2660275 .0131064
+ 343523.50 .2718050 .0140457
+ 343551.12 .2574447 .0133525
+ 343578.78 .2647491 .0137386
+ 343606.44 .2743381 .0139456
+ 343634.09 .2714337 .0137750
+ 343661.72 .2601313 .0137192
+ 343689.38 .2752635 .0139878
+ 343717.06 .2768280 .0139460
+ 343744.72 .2649794 .0136021
+ 343772.38 .2698700 .0138797
+ 343800.06 .2773169 .0144549
+ 343827.75 .2770002 .0143177
+ 343855.41 .2643775 .0134813
+ 343883.06 .2606254 .0136706
+ 343910.78 .2947176 .0151687
+ 343938.47 .2963682 .0151092
+ 343966.12 .2827323 .0140518
+ 343993.88 .2930440 .0142632
+ 344021.56 .2594902 .0127465
+ 344049.22 .2599535 .0126055
+ 344076.94 .2837813 .0138610
+ 344104.66 .2830632 .0139099
+ 344132.38 .2849972 .0136483
+ 344160.06 .2413921 .0122880
+ 344187.81 .3030030 .0146693
+ 344215.53 .2600507 .0130421
+ 344243.22 .2688970 .0136744
+ 344270.94 .2733136 .0139467
+ 344298.72 .2552646 .0128674
+ 344326.44 .2449139 .0126925
+ 344354.16 .2700123 .0135496
+ 344381.94 .2579691 .0130939
+ 344409.66 .2667126 .0132563
+ 344437.41 .2671271 .0135826
+ 344465.12 .2716603 .0136805
+ 344492.94 .2930880 .0146397
+ 344520.66 .2593173 .0130338
+ 344548.41 .2691736 .0136665
+ 344576.22 .2804595 .0141704
+ 344603.97 .3022429 .0150994
+ 344631.72 .2871109 .0143406
+ 344659.47 .2765194 .0142890
+ 344687.28 .2769381 .0141862
+ 344715.06 .2754040 .0141838
+ 344742.84 .2899509 .0144695
+ 344770.66 .2486987 .0129053
+ 344798.44 .2845795 .0140999
+ 344826.22 .2906332 .0144254
+ 344854.06 .2758192 .0135421
+ 344881.84 .2825209 .0140047
+ 344909.62 .2901409 .0143499
+ 344937.41 .2982175 .0148894
+ 344965.28 .2754604 .0137369
+ 344993.06 .2885168 .0143743
+ 345020.88 .2868752 .0142439
+ 345048.72 .2885261 .0144591
+ 345076.53 .3013243 .0151080
+ 345104.34 .2628178 .0131000
+ 345132.16 .2590226 .0132504
+ 345160.03 .2820865 .0136667
+ 345187.88 .2842297 .0138421
+ 345215.69 .2858161 .0137898
+ 345243.56 .2760795 .0132671
+ 345271.41 .2851505 .0137848
+ 345299.25 .2567238 .0126113
+ 345327.09 .2737325 .0129948
+ 345354.97 .2819038 .0136134
+ 345382.81 .2837877 .0138171
+ 345410.69 .2716445 .0134828
+ 345438.59 .2692299 .0132228
+ 345466.44 .2848337 .0140223
+ 345494.31 .2726525 .0132650
+ 345522.16 .2805627 .0136026
+ 345550.09 .3018318 .0141726
+ 345577.97 .2733089 .0130824
+ 345605.84 .2884552 .0139162
+ 345633.75 .2678767 .0133457
+ 345661.62 .2762169 .0134443
+ 345689.53 .2768014 .0133702
+ 345717.41 .2960098 .0141877
+ 345745.34 .2735443 .0131779
+ 345773.25 .2674068 .0129082
+ 345801.16 .2809506 .0136678
+ 345829.09 .2725368 .0130294
+ 345857.00 .2711706 .0131184
+ 345884.91 .2956159 .0142199
+ 345912.81 .2717883 .0132378
+ 345940.78 .2663190 .0132225
+ 345968.72 .2760226 .0136887
+ 345996.62 .2769445 .0140132
+ 346024.59 .2730141 .0138434
+ 346052.53 .2528857 .0130325
+ 346080.47 .2736567 .0140167
+ 346108.41 .2936186 .0147441
+ 346136.41 .2790910 .0146980
+ 346164.34 .2718049 .0140329
+ 346192.28 .2851003 .0145945
+ 346220.28 .2772021 .0145149
+ 346248.22 .2835310 .0142648
+ 346276.19 .2804519 .0141578
+ 346304.16 .2817188 .0143938
+ 346332.16 .2842553 .0142587
+ 346360.12 .2848495 .0139665
+ 346388.09 .2717039 .0137546
+ 346416.12 .2939377 .0145687
+ 346444.09 .2783392 .0138916
+ 346472.06 .2936468 .0144929
+ 346500.09 .2685887 .0134324
+ 346528.09 .2805115 .0138662
+ 346556.09 .2698262 .0137901
+ 346584.06 .2600672 .0132520
+ 346612.12 .2638094 .0133527
+ 346640.12 .2655614 .0130257
+ 346668.12 .3067508 .0149162
+ 346696.19 .2897660 .0139249
+ 346724.19 .2647029 .0132538
+ 346752.22 .2783973 .0136776
+ 346780.22 .2964625 .0142130
+ 346808.28 .2932017 .0139253
+ 346836.31 .2666540 .0128560
+ 346864.34 .2877819 .0136570
+ 346892.44 .2638569 .0125124
+ 346920.47 .2712798 .0129903
+ 346948.50 .2502141 .0123275
+ 346976.53 .2718662 .0128530
+ 347004.62 .2758543 .0128013
+ 347032.69 .2658713 .0126325
+ 347060.72 .2817317 .0133040
+ 347088.84 .2814134 .0131878
+ 347116.91 .2765903 .0131019
+ 347144.94 .2941743 .0138346
+ 347173.03 .2734168 .0132336
+ 347201.12 .2615937 .0124564
+ 347229.22 .2792725 .0135408
+ 347257.28 .2529180 .0124911
+ 347285.41 .2936609 .0145054
+ 347313.50 .2801425 .0137771
+ 347341.56 .2341584 .0121615
+ 347369.66 .2626656 .0129588
+ 347397.81 .2901250 .0143372
+ 347425.91 .2670574 .0130781
+ 347454.00 .2818597 .0139321
+ 347482.16 .3086347 .0148971
+ 347510.25 .2781513 .0136860
+ 347538.38 .2702048 .0135607
+ 347566.47 .2904805 .0140848
+ 347594.66 .2702254 .0136443
+ 347622.75 .2528489 .0128646
+ 347650.88 .2991107 .0145736
+ 347679.06 .2631799 .0133160
+ 347707.19 .2890197 .0146361
+ 347735.31 .3082209 .0153485
+ 347763.47 .2564701 .0133192
+ 347791.66 .2917062 .0147440
+ 347819.78 .2833315 .0141809
+ 347847.94 .2737429 .0137308
+ 347876.16 .2831572 .0140762
+ 347904.28 .2811404 .0139368
+ 347932.44 .2731341 .0134558
+ 347960.62 .2597916 .0129820
+ 347988.81 .2724062 .0138808
+ 348017.00 .2755807 .0140682
+ 348045.16 .2898518 .0142405
+ 348073.38 .2676696 .0131779
+ 348101.56 .2886494 .0138625
+ 348129.75 .2771711 .0140143
+ 348157.97 .2556767 .0131614
+ 348186.16 .2734419 .0138685
+ 348214.34 .2973032 .0149225
+ 348242.56 .2733943 .0138900
+ 348270.81 .2639084 .0138037
+ 348299.00 .2769585 .0141496
+ 348327.22 .2743972 .0141492
+ 348355.47 .2891959 .0144017
+ 348383.69 .2866179 .0142055
+ 348411.91 .2830003 .0139403
+ 348440.09 .2747763 .0136974
+ 348468.38 .3004590 .0146046
+ 348496.59 .2963763 .0143398
+ 348524.84 .2932149 .0142504
+ 348553.12 .2576431 .0128034
+ 348581.34 .2908253 .0144128
+ 348609.59 .2636960 .0133109
+ 348637.84 .2680447 .0136850
+ 348666.12 .2877813 .0144399
+ 348694.38 .2781844 .0139891
+ 348722.62 .2708967 .0139660
+ 348750.94 .2764911 .0141220
+ 348779.19 .2821379 .0144696
+ 348807.47 .2811552 .0144368
+ 348835.72 .2988591 .0155688
+ 348864.06 .2864670 .0152500
+ 348892.31 .2838315 .0145705
+ 348920.59 .2872959 .0145098
+ 348948.94 .2641517 .0136649
+ 348977.22 .2897072 .0145893
+ 349005.50 .2680011 .0137812
+ 349033.78 .2936784 .0148601
+ 349062.12 .2633277 .0138077
+ 349090.44 .2885237 .0147465
+ 349118.72 .2759447 .0141398
+ 349147.09 .2692548 .0137075
+ 349175.41 .2816178 .0144772
+ 349203.72 .3297317 .0163250
+ 349232.03 .2939574 .0149147
+ 349260.41 .2877741 .0146509
+ 349288.72 .3122514 .0155210
+ 349317.03 .2642592 .0132282
+ 349345.41 .2801506 .0139494
+ 349373.75 .2524704 .0127508
+ 349402.09 .3005641 .0149524
+ 349430.44 .3112881 .0152577
+ 349458.81 .2822947 .0142412
+ 349487.16 .2602933 .0137290
+ 349515.50 .3031006 .0149781
+ 349543.91 .2613223 .0134963
+ 349572.28 .2579313 .0131386
+ 349600.62 .2858186 .0145353
+ 349629.00 .2778510 .0142150
+ 349657.41 .2777439 .0137761
+ 349685.78 .2780445 .0135692
+ 349714.16 .2879824 .0141566
+ 349742.59 .2855341 .0138280
+ 349770.97 .3080277 .0148402
+ 349799.34 .2955282 .0146011
+ 349827.72 .2800865 .0137851
+ 349856.19 .2581238 .0129988
+ 349884.56 .2998699 .0146628
+ 349912.97 .2829680 .0139498
+ 349941.41 .2860389 .0135506
+ 349969.81 .2538083 .0125416
+ 349998.22 .3248386 .0151848
+ 350026.69 .2725777 .0130827
+ 350055.09 .2902428 .0135896
+ 350083.53 .2838061 .0136878
+ 350111.94 .2760614 .0128879
+ 350140.44 .2870978 .0135580
+ 350168.84 .2847795 .0134712
+ 350197.28 .2457897 .0119170
+ 350225.78 .2801843 .0132893
+ 350254.22 .3020298 .0138842
+ 350282.66 .2818935 .0130601
+ 350311.09 .2526981 .0119703
+ 350339.59 .2770100 .0128259
+ 350368.06 .2830735 .0131331
+ 350396.50 .2955965 .0136832
+ 350425.03 .2711056 .0126299
+ 350453.47 .2830151 .0132164
+ 350481.94 .3014238 .0142018
+ 350510.41 .2971908 .0138383
+ 350538.94 .2762935 .0132375
+ 350567.41 .2936167 .0139797
+ 350595.91 .2868476 .0138801
+ 350624.44 .2806265 .0139303
+ 350652.94 .2822480 .0136649
+ 350681.41 .2723406 .0136729
+ 350709.91 .2674457 .0132312
+ 350738.47 .2883596 .0136273
+ 350766.97 .2727138 .0134097
+ 350795.47 .2897020 .0138998
+ 350824.03 .2872892 .0138185
+ 350852.53 .2742816 .0133352
+ 350881.06 .3070107 .0144363
+ 350909.56 .2808249 .0137266
+ 350938.16 .2739964 .0135837
+ 350966.66 .2626829 .0133578
+ 350995.19 .2738019 .0136758
+ 351023.78 .2811005 .0136762
+ 351052.31 .2927278 .0139410
+ 351080.84 .2855435 .0137210
+ 351109.41 .2856939 .0131887
+ 351138.00 .2769248 .0129924
+ 351166.56 .2742637 .0131250
+ 351195.09 .2755069 .0131734
+ 351223.72 .2843467 .0134474
+ 351252.28 .2781222 .0134976
+ 351280.84 .2930436 .0138031
+ 351309.41 .2677674 .0128465
+ 351338.03 .2767489 .0133567
+ 351366.59 .2638851 .0126517
+ 351395.19 .2702281 .0126295
+ 351423.81 .2704541 .0129345
+ 351452.41 .2539622 .0122420
+ 351481.00 .2986913 .0141872
+ 351509.56 .3090611 .0144553
+ 351538.22 .2791040 .0131012
+ 351566.81 .2842104 .0137212
+ 351595.44 .2969875 .0140095
+ 351624.09 .2890399 .0139165
+ 351652.69 .2716193 .0130913
+ 351681.31 .2674631 .0132211
+ 351709.97 .2797547 .0134508
+ 351738.59 .2959277 .0145769
+ 351767.22 .2955424 .0144277
+ 351795.84 .2914329 .0143540
+ 351824.53 .2923989 .0141049
+ 351853.16 .2924546 .0145306
+ 351881.81 .2877315 .0145852
+ 351910.50 .2745582 .0137781
+ 351939.12 .2926604 .0144949
+ 351967.78 .3060505 .0152221
+ 351996.44 .2931316 .0139318
+ 352025.16 .2951632 .0144981
+ 352053.81 .2807782 .0135291
+ 352082.47 .2720580 .0130950
+ 352111.19 .2599863 .0123877
+ 352139.84 .2933631 .0132285
+ 352168.53 .2860995 .0131170
+ 352197.19 .2919003 .0130463
+ 352225.94 .2855841 .0128299
+ 352254.62 .2713508 .0123800
+ 352283.28 .2932834 .0131358
+ 352312.03 .2667108 .0122671
+ 352340.72 .2656584 .0123189
+ 352369.44 .3050947 .0139714
+ 352398.12 .2798009 .0130423
+ 352426.88 .2817879 .0133877
+ 352455.59 .2828257 .0134450
+ 352484.31 .2734329 .0129883
+ 352513.06 .2709124 .0130934
+ 352541.78 .2775507 .0132661
+ 352570.50 .2988674 .0143148
+ 352599.22 .2951255 .0142472
+ 352628.03 .2690911 .0132367
+ 352656.75 .2864175 .0136022
+ 352685.47 .2824430 .0136651
+ 352714.28 .2606767 .0127289
+ 352743.03 .2658340 .0128001
+ 352771.75 .3021565 .0143903
+ 352800.50 .3030872 .0143354
+ 352829.31 .2604282 .0125809
+ 352858.06 .2868405 .0136359
+ 352886.84 .2913103 .0141427
+ 352915.66 .2566464 .0129246
+ 352944.41 .2998016 .0147879
+ 352973.19 .2670591 .0135665
+ 353001.97 .2900940 .0145018
+ 353030.78 .2746355 .0139876
+ 353059.56 .2608576 .0133464
+ 353088.34 .2792316 .0136805
+ 353117.19 .2725067 .0139113
+ 353146.00 .2936164 .0142844
+ 353174.78 .2842095 .0136784
+ 353203.59 .2735864 .0134262
+ 353232.44 .2831948 .0135272
+ 353261.25 .2515413 .0123398
+ 353290.06 .2952390 .0139546
+ 353318.91 .2761384 .0133016
+ 353347.75 .2863786 .0137890
+ 353376.56 .2914796 .0136770
+ 353405.38 .2765073 .0132185
+ 353434.25 .2624589 .0127042
+ 353463.09 .2786618 .0129428
+ 353491.94 .2852429 .0132309
+ 353520.81 .2651064 .0123998
+ 353549.66 .2771303 .0124922
+ 353578.50 .2732010 .0126219
+ 353607.41 .2969318 .0138243
+ 353636.25 .2934391 .0135669
+ 353665.09 .2862654 .0132193
+ 353693.97 .2958015 .0137236
+ 353722.88 .2822741 .0133037
+ 353751.75 .2824560 .0136336
+ 353780.62 .2780685 .0133569
+ 353809.53 .2809358 .0131423
+ 353838.41 .2748736 .0131383
+ 353867.31 .2694664 .0129509
+ 353896.19 .2895787 .0136133
+ 353925.12 .2692906 .0130866
+ 353954.00 .2938834 .0138492
+ 353982.91 .2676528 .0128706
+ 354011.84 .2876933 .0140048
+ 354040.75 .2890117 .0139149
+ 354069.66 .2947207 .0140728
+ 354098.56 .2883780 .0141335
+ 354127.53 .3046308 .0146824
+ 354156.44 .2641048 .0129971
+ 354185.38 .2759568 .0135277
+ 354214.34 .2885677 .0139116
+ 354243.28 .2817199 .0131947
+ 354272.19 .2795374 .0134178
+ 354301.12 .2615799 .0127902
+ 354330.12 .2598128 .0127012
+ 354359.06 .2804238 .0134150
+ 354388.00 .2368423 .0118936
+ 354417.00 .2186758 .0115322
+ 354445.97 .2181711 .0117295
+ 354474.91 .1930285 .0107632
+ 354503.88 .1554324 .0091360
+ 354532.88 .1506556 .0092952
+ 354561.84 .1530108 .0097077
+ 354590.81 .1437273 .0091808
+ 354619.84 .1421800 .0090139
+ 354648.81 .1443647 .0088971
+ 354677.81 .1696865 .0098415
+ 354706.78 .1912961 .0103800
+ 354735.81 .2313563 .0117713
+ 354764.81 .2255202 .0113090
+ 354793.81 .2539942 .0123440
+ 354822.84 .2432390 .0117175
+ 354851.84 .2772855 .0131400
+ 354880.88 .2845185 .0134467
+ 354909.88 .2831548 .0135667
+ 354938.94 .2505587 .0123679
+ 354967.94 .2874595 .0139145
+ 354996.97 .2951844 .0143282
+ 355026.03 .2783678 .0137889
+ 355055.06 .2792509 .0136484
+ 355084.09 .2779980 .0133948
+ 355113.12 .2628843 .0126566
+ 355142.22 .2865910 .0137158
+ 355171.25 .2951291 .0138665
+ 355200.31 .2667458 .0128611
+ 355229.41 .2775976 .0136656
+ 355258.44 .2952801 .0144242
+ 355287.50 .2777934 .0140264
+ 355316.62 .2892786 .0141621
+ 355345.69 .2847059 .0140493
+ 355374.75 .2847233 .0140045
+ 355403.81 .2749658 .0136736
+ 355432.94 .2899671 .0142013
+ 355462.00 .2739896 .0135606
+ 355491.09 .2701278 .0135445
+ 355520.22 .2874521 .0141837
+ 355549.31 .2997467 .0143531
+ 355578.41 .2796548 .0134980
+ 355607.50 .2861825 .0135483
+ 355636.66 .2975230 .0141330
+ 355665.75 .2910994 .0137884
+ 355694.84 .2704875 .0125966
+ 355724.00 .2998588 .0134620
+ 355753.12 .2856080 .0133083
+ 355782.25 .2777331 .0131247
+ 355811.34 .3116642 .0141028
+ 355840.53 .2935476 .0134867
+ 355869.66 .2862215 .0133318
+ 355898.78 .2924762 .0136615
+ 355927.97 .2890162 .0130894
+ 355957.09 .2793005 .0127558
+ 355986.25 .2782494 .0129206
+ 356015.38 .2774627 .0128877
+ 356044.59 .2726483 .0123352
+ 356073.75 .2786851 .0129065
+ 356102.91 .3093815 .0142308
+ 356132.09 .2795193 .0127405
+ 356161.28 .2992684 .0141874
+ 356190.44 .2870341 .0134051
+ 356219.59 .2884971 .0135641
+ 356248.81 .2900601 .0138666
+ 356278.00 .2770274 .0132886
+ 356307.19 .2642115 .0126698
+ 356336.41 .3153715 .0151523
+ 356365.59 .3032325 .0146371
+ 356394.78 .2858332 .0141024
+ 356424.00 .3020902 .0147201
+ 356453.25 .3030628 .0146613
+ 356482.44 .2894813 .0141397
+ 356511.66 .2714693 .0133061
+ 356540.91 .2941279 .0139244
+ 356570.12 .2937590 .0135170
+ 356599.34 .2847064 .0134469
+ 356628.56 .2942358 .0138176
+ 356657.81 .3195439 .0148010
+ 356687.06 .2933961 .0140632
+ 356716.28 .2912226 .0140606
+ 356745.56 .2904057 .0136888
+ 356774.81 .2886121 .0143917
+ 356804.03 .2994958 .0146184
+ 356833.28 .2927801 .0144196
+ 356862.59 .2970428 .0142671
+ 356891.84 .2956623 .0143891
+ 356921.09 .3095916 .0145259
+ 356950.41 .2934545 .0141422
+ 356979.66 .2805211 .0137204
+ 357008.94 .2948618 .0144808
+ 357038.25 .2533377 .0122871
+ 357067.53 .3263238 .0155076
+ 357096.81 .2909240 .0139147
+ 357126.09 .2730546 .0134290
+ 357155.44 .2797702 .0135687
+ 357184.72 .2962870 .0140019
+ 357214.00 .3053751 .0145587
+ 357243.34 .3121319 .0148482
+ 357272.66 .2718951 .0129536
+ 357301.94 .2958533 .0139884
+ 357331.25 .2732522 .0130385
+ 357360.62 .3101740 .0147391
+ 357389.94 .2849386 .0133600
+ 357419.25 .2690025 .0129353
+ 357448.62 .2803201 .0136869
+ 357477.94 .2979105 .0142830
+ 357507.28 .3042894 .0145416
+ 357536.59 .3082722 .0146442
+ 357566.00 .2880968 .0140387
+ 357595.31 .2952442 .0144221
+ 357624.66 .2702838 .0135652
+ 357654.06 .3012980 .0149100
+ 357683.41 .2691248 .0132826
+ 357712.75 .2876425 .0139908
+ 357742.12 .2983578 .0144516
+ 357771.53 .2940479 .0138582
+ 357800.91 .2936288 .0138556
+ 357830.25 .2818528 .0134839
+ 357859.69 .2824151 .0133214
+ 357889.06 .2786085 .0134079
+ 357918.44 .2773190 .0133674
+ 357947.81 .2735104 .0133240
+ 357977.25 .2871862 .0140430
+ 358006.66 .3057516 .0148249
+ 358036.03 .2747512 .0135145
+ 358065.50 .2761042 .0136818
+ 358094.88 .2836526 .0137656
+ 358124.28 .2824635 .0135387
+ 358153.69 .2923888 .0138907
+ 358183.16 .2937535 .0140084
+ 358212.56 .2765689 .0132734
+ 358242.00 .2800789 .0132835
+ 358271.47 .3005597 .0137765
+ 358300.88 .3128337 .0146832
+ 358330.31 .2768770 .0128374
+ 358359.75 .2897076 .0135603
+ 358389.25 .2820964 .0129314
+ 358418.69 .2799220 .0130488
+ 358448.12 .3069858 .0143009
+ 358477.62 .2878416 .0137538
+ 358507.06 .2861716 .0133681
+ 358536.53 .2911553 .0135798
+ 358565.97 .2756450 .0129325
+ 358595.50 .2791075 .0131900
+ 358624.97 .2827055 .0135001
+ 358654.44 .2967117 .0138621
+ 358683.94 .2746646 .0130963
+ 358713.44 .2949790 .0139713
+ 358742.91 .2772319 .0134155
+ 358772.38 .3103875 .0143948
+ 358801.94 .3063689 .0145491
+ 358831.41 .2951632 .0141511
+ 358860.91 .2741862 .0131104
+ 358890.47 .2924483 .0136898
+ 358919.97 .2968014 .0137776
+ 358949.47 .3206044 .0147367
+ 358979.03 .2852287 .0130522
+ 359008.53 .2700336 .0130443
+ 359038.06 .2811847 .0128195
+ 359067.56 .2783771 .0123962
+ 359097.16 .2809024 .0127070
+ 359126.69 .2765980 .0125248
+ 359156.22 .2916234 .0133557
+ 359185.81 .3138132 .0142644
+ 359215.34 .2751288 .0129724
+ 359244.88 .3056483 .0143302
+ 359274.41 .2730935 .0129996
+ 359304.03 .3054036 .0145820
+ 359333.56 .2890092 .0142267
+ 359363.12 .2803925 .0138138
+ 359392.75 .2749493 .0135258
+ 359422.31 .2941161 .0144381
+ 359451.88 .3085736 .0147703
+ 359481.44 .2844088 .0135427
+ 359511.06 .2693117 .0131302
+ 359540.66 .2888941 .0137079
+ 359570.22 .2849917 .0137220
+ 359599.88 .2970799 .0138422
+ 359629.47 .3027173 .0143999
+ 359659.06 .2963942 .0139460
+ 359688.66 .2820567 .0137521
+ 359718.31 .2843266 .0137169
+ 359747.91 .2994775 .0144924
+ 359777.50 .2849148 .0139252
+ 359807.19 .2705215 .0129483
+ 359836.78 .2703056 .0127872
+ 359866.41 .2956645 .0133405
+ 359896.03 .2880034 .0133605
+ 359925.72 .2843449 .0127825
+ 359955.34 .2947245 .0133543
+ 359984.97 .2755491 .0123418
+ 360014.66 .2728865 .0125415
+ 360044.28 .2860034 .0130934
+ 360073.94 .2824424 .0129774
+ 360103.59 .2851603 .0132168
+ 360133.28 .2767366 .0131600
+ 360162.94 .2963581 .0134407
+ 360192.59 .2780592 .0130056
+ 360222.31 .3068170 .0142412
+ 360251.97 .2981021 .0139988
+ 360281.66 .2838175 .0138297
+ 360311.31 .2842428 .0138871
+ 360341.06 .3239223 .0151343
+ 360370.72 .2714022 .0135950
+ 360400.41 .2750864 .0134454
+ 360430.16 .2875944 .0136465
+ 360459.84 .3204904 .0154414
+ 360489.53 .2997970 .0148473
+ 360519.25 .2968976 .0147277
+ 360549.00 .2945697 .0144641
+ 360578.72 .3185419 .0153657
+ 360608.41 .2825518 .0139947
+ 360638.19 .2747137 .0135123
+ 360667.91 .3153715 .0153020
+ 360697.62 .2718440 .0133164
+ 360727.41 .2966916 .0143798
+ 360757.12 .3041836 .0144172
+ 360786.84 .2797038 .0135757
+ 360816.59 .3074755 .0146758
+ 360846.38 .2972005 .0137992
+ 360876.12 .2743162 .0133586
+ 360905.88 .2902153 .0139070
+ 360935.69 .2787938 .0132329
+ 360965.44 .3186730 .0144370
+ 360995.19 .2839580 .0131143
+ 361024.94 .2853204 .0132927
+ 361054.78 .3110753 .0141187
+ 361084.53 .2855097 .0133517
+ 361114.31 .2904422 .0134535
+ 361144.12 .2844146 .0134612
+ 361173.91 .2839416 .0131418
+ 361203.69 .2905355 .0136655
+ 361233.47 .2753422 .0129548
+ 361263.34 .2801175 .0130212
+ 361293.12 .3110079 .0144184
+ 361322.91 .2978764 .0138556
+ 361352.78 .2986189 .0138170
+ 361382.59 .2969867 .0139478
+ 361412.38 .2867476 .0133798
+ 361442.19 .2837366 .0131402
+ 361472.06 .3009009 .0138816
+ 361501.91 .2877942 .0136989
+ 361531.72 .3031890 .0140444
+ 361561.59 .2730279 .0131076
+ 361591.44 .2913560 .0136502
+ 361621.25 .2925379 .0138677
+ 361651.09 .2976280 .0138224
+ 361681.00 .2814494 .0136307
+ 361710.84 .2827982 .0136207
+ 361740.69 .2943538 .0142478
+ 361770.59 .2959072 .0144713
+ 361800.47 .3083492 .0146161
+ 361830.31 .3013252 .0142276
+ 361860.19 .2802364 .0137042
+ 361890.09 .3060614 .0144363
+ 361919.97 .2996326 .0142076
+ 361949.84 .2734313 .0129287
+ 361979.78 .3003609 .0140308
+ 362009.66 .3073801 .0142416
+ 362039.56 .2979152 .0137499
+ 362069.44 .2883481 .0131629
+ 362099.41 .2734038 .0130368
+ 362129.28 .2914647 .0138604
+ 362159.19 .2819985 .0132293
+ 362189.16 .2680998 .0128345
+ 362219.06 .2944498 .0139110
+ 362248.97 .2679103 .0133361
+ 362278.88 .3110592 .0150800
+ 362308.88 .2654390 .0134715
+ 362338.78 .3096836 .0149676
+ 362368.72 .3088285 .0153095
+ 362398.69 .2928937 .0143797
+ 362428.62 .2808930 .0139688
+ 362458.56 .2807215 .0141491
+ 362488.50 .3167734 .0151633
+ 362518.50 .2985650 .0146462
+ 362548.47 .2737130 .0134114
+ 362578.41 .2900388 .0140819
+ 362608.44 .2815008 .0140864
+ 362638.38 .2901687 .0144340
+ 362668.34 .2811188 .0137211
+ 362698.38 .2928720 .0137834
+ 362728.34 .3151685 .0151182
+ 362758.31 .2820553 .0136864
+ 362788.31 .2958984 .0139188
+ 362818.34 .2954132 .0142413
+ 362848.31 .3030224 .0145806
+ 362878.31 .2744276 .0135183
+ 362908.38 .2943483 .0145096
+ 362938.38 .3192860 .0153502
+ 362968.38 .2800790 .0140514
+ 362998.38 .2824659 .0140596
+ 363028.44 .2880540 .0145417
+ 363058.44 .2918782 .0146056
+ 363088.47 .2808402 .0137607
+ 363118.53 .2664315 .0133998
+ 363148.56 .3039743 .0146341
+ 363178.59 .2746011 .0133104
+ 363208.62 .2984118 .0143989
+ 363238.72 .2891252 .0140635
+ 363268.75 .3027570 .0142439
+ 363298.78 .2643735 .0127699
+ 363328.91 .2915238 .0140123
+ 363358.94 .3129191 .0150029
+ 363389.00 .2899537 .0139031
+ 363419.06 .2969925 .0146616
+ 363449.16 .2701092 .0135901
+ 363479.22 .2970393 .0141804
+ 363509.31 .2590216 .0128273
+ 363539.44 .2839049 .0139805
+ 363569.50 .2833017 .0138226
+ 363599.59 .2903115 .0142666
+ 363629.66 .2802413 .0136604
+ 363659.81 .2759896 .0132932
+ 363689.91 .2921062 .0142549
+ 363720.00 .2877485 .0136963
+ 363750.16 .2756476 .0132325
+ 363780.25 .2532906 .0125442
+ 363810.34 .2899749 .0139796
+ 363840.47 .2733438 .0135689
+ 363870.62 .2822122 .0140567
+ 363900.75 .2775102 .0139497
+ 363930.88 .3265916 .0161419
+ 363961.06 .2873111 .0142806
+ 363991.19 .2897433 .0139558
+ 364021.31 .3102198 .0150209
+ 364051.44 .2864586 .0136044
+ 364081.66 .2851325 .0137085
+ 364111.78 .2992207 .0139787
+ 364141.94 .3008277 .0137622
+ 364172.16 .2918887 .0132957
+ 364202.28 .3040560 .0138397
+ 364232.47 .3010980 .0135995
+ 364262.62 .2922791 .0132980
+ 364292.84 .2921687 .0137146
+ 364323.00 .3008544 .0142225
+ 364353.19 .3143513 .0152672
+ 364383.41 .2818807 .0138648
+ 364413.59 .2988433 .0147090
+ 364443.78 .2899515 .0139458
+ 364474.03 .2795218 .0136747
+ 364504.22 .2910850 .0140419
+ 364534.41 .2800471 .0138281
+ 364564.59 .2693881 .0130709
+ 364594.88 .2834765 .0134911
+ 364625.06 .3286493 .0157406
+ 364655.28 .2840379 .0136687
+ 364685.56 .2799976 .0136576
+ 364715.78 .3031098 .0141301
+ 364746.00 .2901826 .0134684
+ 364776.22 .2618958 .0127868
+ 364806.50 .2795882 .0132363
+ 364836.75 .2879370 .0136040
+ 364866.97 .2810143 .0133147
+ 364897.28 .2856362 .0134078
+ 364927.53 .2759606 .0128162
+ 364957.78 .2883693 .0136892
+ 364988.03 .2994891 .0142847
+ 365018.34 .2790122 .0131748
+ 365048.59 .2854713 .0140358
+ 365078.84 .2877494 .0141203
+ 365109.19 .3005694 .0145541
+ 365139.44 .3084599 .0153623
+ 365169.72 .2859004 .0141641
+ 365200.00 .2981367 .0150339
+ 365230.34 .2657933 .0137248
+ 365260.62 .2982589 .0149533
+ 365290.91 .2687728 .0136912
+ 365321.25 .2974480 .0148689
+ 365351.56 .2980494 .0143234
+ 365381.88 .3068182 .0147831
+ 365412.16 .3006375 .0147298
+ 365442.53 .3233652 .0154093
+ 365472.84 .2639798 .0134939
+ 365503.16 .3049002 .0147879
+ 365533.53 .2840311 .0141148
+ 365563.88 .2982815 .0144923
+ 365594.19 .2904597 .0141839
+ 365624.53 .2916913 .0140108
+ 365654.91 .3023541 .0148280
+ 365685.25 .2912776 .0140527
+ 365715.59 .2944060 .0143971
+ 365746.00 .2914819 .0140315
+ 365776.34 .3079157 .0145599
+ 365806.69 .2981259 .0140928
+ 365837.06 .3244445 .0153803
+ 365867.47 .3036059 .0143851
+ 365897.84 .2971784 .0143294
+ 365928.22 .2952258 .0141330
+ 365958.62 .2983552 .0142537
+ 365989.00 .2907380 .0138620
+ 366019.41 .3237761 .0153652
+ 366049.78 .2711851 .0131611
+ 366080.22 .2887487 .0136384
+ 366110.62 .2917317 .0137513
+ 366141.00 .3142481 .0147928
+ 366171.47 .2775279 .0134213
+ 366201.88 .2711406 .0130028
+ 366232.28 .2900567 .0137721
+ 366262.75 .3124781 .0146113
+ 366293.16 .2864010 .0136529
+ 366323.56 .2822993 .0135505
+ 366354.00 .3008587 .0146157
+ 366384.47 .2985264 .0142311
+ 366414.91 .2806121 .0139178
+ 366445.34 .3109346 .0151427
+ 366475.84 .3208365 .0155074
+ 366506.28 .3067857 .0147812
+ 366536.72 .2884022 .0142034
+ 366567.16 .2790507 .0136369
+ 366597.69 .2983612 .0148853
+ 366628.12 .3005877 .0145890
+ 366658.59 .3037337 .0145542
+ 366689.12 .3088657 .0148535
+ 366719.59 .2744699 .0136911
+ 366750.06 .3073556 .0147574
+ 366780.53 .2922411 .0142287
+ 366811.06 .2837828 .0136226
+ 366841.56 .2805603 .0134956
+ 366872.03 .2651317 .0131100
+ 366902.59 .3064665 .0143958
+ 366933.06 .2865894 .0137579
+ 366963.56 .3101075 .0150030
+ 366994.06 .2867891 .0140092
+ 367024.62 .2967416 .0141745
+ 367055.16 .2670828 .0131772
+ 367085.66 .3153606 .0148329
+ 367116.25 .3009049 .0145281
+ 367146.75 .3011338 .0141857
+ 367177.28 .2834623 .0133987
+ 367207.81 .2920944 .0140226
+ 367238.41 .2839068 .0138017
+ 367268.94 .3001266 .0148542
+ 367299.47 .3071615 .0147688
+ 367330.06 .2927782 .0143731
+ 367360.62 .3083444 .0149032
+ 367391.19 .2903612 .0146027
+ 367421.72 .2912112 .0144230
+ 367452.34 .2628604 .0132389
+ 367482.91 .2905278 .0139458
+ 367513.47 .2913077 .0141870
+ 367544.09 .2945541 .0139270
+ 367574.69 .3048344 .0144002
+ 367605.25 .2845297 .0133573
+ 367635.84 .2982975 .0145386
+ 367666.47 .2876856 .0142201
+ 367697.06 .2808851 .0138419
+ 367727.66 .3059398 .0145252
+ 367758.31 .3082425 .0147849
+ 367788.91 .2754632 .0137951
+ 367819.53 .2587787 .0128026
+ 367850.12 .2901317 .0140649
+ 367880.81 .3017496 .0145312
+ 367911.41 .3030826 .0147765
+ 367942.03 .3004317 .0147766
+ 367972.72 .2830221 .0141152
+ 368003.34 .3094365 .0152470
+ 368033.97 .2979634 .0146233
+ 368064.59 .2872128 .0141930
+ 368095.31 .2987870 .0150468
+ 368125.94 .2902029 .0142604
+ 368156.59 .2869754 .0142848
+ 368187.31 .2884164 .0145629
+ 368217.97 .2703274 .0134637
+ 368248.62 .3023098 .0149563
+ 368279.34 .2757807 .0133446
+ 368310.00 .2806655 .0135759
+ 368340.66 .3087862 .0148378
+ 368371.34 .2897959 .0137888
+ 368402.09 .3047391 .0144586
+ 368432.75 .2805507 .0136888
+ 368463.44 .2841604 .0136648
+ 368494.19 .2896298 .0139386
+ 368524.88 .3008665 .0146503
+ 368555.59 .2726321 .0131061
+ 368586.28 .2883232 .0140181
+ 368617.03 .2958973 .0142137
+ 368647.75 .3128963 .0152429
+ 368678.47 .2686281 .0132874
+ 368709.25 .2945235 .0141368
+ 368739.97 .3074197 .0147166
+ 368770.69 .2809644 .0134866
+ 368801.41 .3151913 .0145044
+ 368832.19 .3164043 .0144708
+ 368862.94 .3062461 .0140815
+ 368893.66 .3115815 .0142125
+ 368924.47 .2728372 .0128280
+ 368955.22 .3040311 .0137915
+ 368985.97 .2975340 .0137293
+ 369016.72 .2665703 .0124506
+ 369047.53 .2899117 .0135714
+ 369078.31 .2900724 .0134624
+ 369109.06 .2672089 .0125796
+ 369139.91 .2736639 .0129414
+ 369170.66 .2963527 .0139029
+ 369201.44 .2884868 .0137580
+ 369232.22 .2811024 .0131030
+ 369263.06 .2819708 .0135956
+ 369293.84 .2791536 .0136870
+ 369324.66 .2711922 .0135944
+ 369355.50 .3063135 .0148796
+ 369386.31 .2954732 .0144350
+ 369417.09 .2757733 .0133336
+ 369447.91 .2858836 .0136869
+ 369478.78 .3100041 .0149857
+ 369509.59 .3143715 .0151756
+ 369540.41 .2982912 .0141228
+ 369571.31 .2932066 .0141391
+ 369602.12 .2740377 .0131740
+ 369632.97 .2915181 .0138842
+ 369663.78 .3045416 .0142901
+ 369694.69 .2744689 .0129657
+ 369725.53 .2946925 .0135195
+ 369756.38 .2873796 .0132506
+ 369787.28 .3266554 .0148043
+ 369818.16 .2801119 .0128531
+ 369849.00 .3011475 .0141144
+ 369879.88 .3201538 .0150226
+ 369910.78 .2784368 .0136908
+ 369941.66 .2929384 .0140806
+ 369972.53 .3194762 .0155004
+ 370003.47 .3010456 .0142857
+ 370034.34 .2939396 .0144860
+ 370065.22 .3240513 .0156548
+ 370096.19 .2878599 .0142069
+ 370127.06 .3062680 .0145113
+ 370157.97 .3195341 .0156957
+ 370188.88 .2721103 .0134083
+ 370219.84 .2988994 .0145386
+ 370250.75 .3008709 .0143079
+ 370281.66 .3121133 .0149913
+ 370312.62 .2685876 .0132079
+ 370343.56 .3109448 .0146635
+ 370374.47 .2822523 .0131942
+ 370405.41 .3056457 .0138491
+ 370436.41 .2789316 .0129667
+ 370467.34 .3076133 .0143248
+ 370498.28 .2780866 .0128278
+ 370529.28 .2998693 .0136266
+ 370560.22 .3043195 .0141960
+ 370591.16 .3014991 .0140928
+ 370622.12 .3140969 .0144156
+ 370653.12 .3264862 .0149335
+ 370684.09 .3014891 .0137785
+ 370715.06 .2902597 .0135017
+ 370746.09 .2810160 .0127393
+ 370777.06 .2953594 .0136027
+ 370808.06 .3048633 .0139206
+ 370839.03 .2991678 .0137882
+ 370870.09 .2825351 .0130850
+ 370901.06 .2930993 .0135292
+ 370932.06 .3147708 .0141734
+ 370963.12 .2861391 .0132886
+ 370994.12 .2926111 .0134176
+ 371025.12 .3206100 .0142409
+ 371056.12 .2991228 .0136429
+ 371087.22 .2867624 .0131061
+ 371118.22 .3069690 .0136464
+ 371149.25 .3001372 .0135670
+ 371180.34 .2781651 .0127678
+ 371211.34 .3410626 .0154261
+ 371242.38 .2936577 .0134925
+ 371273.44 .2716651 .0128418
+ 371304.53 .2911005 .0135668
+ 371335.56 .3100538 .0144273
+ 371366.62 .3174450 .0146665
+ 371397.72 .2954563 .0136949
+ 371428.78 .3179625 .0150852
+ 371459.84 .2909251 .0136266
+ 371490.91 .3010206 .0142843
+ 371522.03 .2774256 .0131176
+ 371553.09 .3163513 .0148556
+ 371584.19 .3001379 .0142566
+ 371615.31 .2834075 .0137191
+ 371646.41 .2658596 .0129465
+ 371677.50 .2866920 .0140036
+ 371708.59 .2942386 .0141208
+ 371739.75 .3130516 .0151699
+ 371770.84 .2935471 .0140714
+ 371801.94 .3042064 .0147258
+ 371833.09 .3212886 .0153266
+ 371864.22 .2980527 .0139857
+ 371895.34 .2860534 .0137174
+ 371926.44 .3089081 .0144467
+ 371957.62 .2996505 .0139719
+ 371988.75 .2922089 .0137167
+ 372019.88 .2798020 .0132782
+ 372051.09 .3004971 .0139979
+ 372082.22 .2966330 .0136904
+ 372113.38 .3005213 .0134786
+ 372144.56 .2941858 .0136458
+ 372175.72 .2637548 .0124204
+ 372206.88 .2954184 .0138518
+ 372238.03 .2945249 .0135866
+ 372269.25 .3309598 .0150641
+ 372300.41 .2989312 .0139028
+ 372331.59 .2895798 .0133878
+ 372362.81 .2924730 .0138022
+ 372394.00 .3077013 .0142190
+ 372425.19 .3192865 .0143651
+ 372456.34 .3213767 .0145232
+ 372487.59 .3128765 .0141669
+ 372518.81 .2974130 .0135519
+ 372550.00 .3078636 .0142080
+ 372581.25 .2959821 .0134945
+ 372612.47 .2932073 .0134589
+ 372643.66 .2949507 .0140009
+ 372674.88 .3029801 .0142457
+ 372706.16 .2847995 .0134924
+ 372737.38 .3197270 .0153521
+ 372768.59 .2962753 .0142348
+ 372799.88 .2988117 .0143661
+ 372831.12 .3011745 .0146221
+ 372862.34 .2923353 .0139190
+ 372893.59 .3040977 .0143911
+ 372924.91 .3241411 .0152427
+ 372956.16 .2956809 .0139170
+ 372987.41 .2942398 .0139304
+ 373018.72 .3130327 .0147682
+ 373049.97 .3120477 .0150555
+ 373081.25 .3030749 .0146057
+ 373112.50 .3173814 .0154636
+ 373143.84 .2724777 .0134292
+ 373175.12 .3217788 .0155142
+ 373206.41 .2875693 .0142018
+ 373237.75 .2924781 .0141310
+ 373269.03 .3105014 .0148118
+ 373300.31 .2969089 .0140778
+ 373331.59 .3288789 .0148644
+ 373362.97 .2929698 .0136782
+ 373394.28 .3090589 .0136409
+ 373425.56 .2771877 .0127067
+ 373456.94 .3211116 .0143311
+ 373488.25 .2996330 .0133091
+ 373519.59 .2935445 .0132111
+ 373550.91 .2918572 .0135491
+ 373582.28 .2898297 .0130784
+ 373613.62 .3138572 .0141344
+ 373644.97 .2930709 .0135565
+ 373676.34 .3058887 .0137422
+ 373707.69 .2980291 .0131069
+ 373739.03 .2882811 .0130684
+ 373770.38 .2996166 .0135122
+ 373801.81 .3023717 .0134076
+ 373833.16 .2824050 .0126469
+ 373864.53 .2816649 .0128358
+ 373895.94 .2980671 .0133680
+ 373927.31 .3159571 .0140613
+ 373958.69 .2869138 .0129431
+ 373990.12 .2896383 .0130862
+ 374021.50 .2904899 .0132581
+ 374052.91 .3251071 .0149295
+ 374084.28 .3179081 .0144442
+ 374115.75 .3033726 .0138791
+ 374147.12 .3277178 .0148904
+ 374178.53 .3060218 .0143505
+ 374210.00 .2978039 .0139823
+ 374241.41 .2843709 .0134284
+ 374272.84 .3081948 .0144180
+ 374304.25 .3199645 .0149908
+ 374335.72 .3091624 .0146289
+ 374367.16 .3026958 .0142197
+ 374398.59 .3000673 .0140046
+ 374430.06 .3134777 .0142464
+ 374461.50 .3193942 .0145919
+ 374492.97 .3060223 .0141086
+ 374524.41 .3079867 .0144169
+ 374555.91 .3071950 .0141130
+ 374587.38 .3244558 .0146967
+ 374618.81 .2954072 .0137020
+ 374650.34 .3090902 .0144567
+ 374681.81 .2864341 .0137705
+ 374713.28 .3145975 .0146443
+ 374744.75 .3057390 .0144926
+ 374776.28 .3074799 .0146979
+ 374807.75 .3006815 .0144821
+ 374839.25 .2974700 .0145143
+ 374870.81 .3377596 .0158546
+ 374902.28 .2625208 .0126972
+ 374933.78 .3036848 .0141211
+ 374965.28 .2998670 .0143814
+ 374996.84 .2809812 .0131156
+ 375028.38 .3270701 .0149951
+ 375059.88 .3001615 .0139497
+ 375091.44 .3095258 .0139336
+ 375122.97 .3120926 .0140505
+ 375154.50 .2681163 .0124689
+ 375186.03 .2932061 .0135062
+ 375217.62 .3076349 .0141366
+ 375249.16 .3105052 .0144010
+ 375280.69 .2737319 .0128573
+ 375312.31 .3185090 .0149213
+ 375343.84 .3189056 .0148695
+ 375375.41 .2990975 .0141673
+ 375406.97 .2810308 .0130608
+ 375438.56 .3077070 .0140919
+ 375470.12 .3071544 .0141010
+ 375501.72 .2837216 .0130086
+ 375533.34 .3162889 .0146852
+ 375564.91 .3073940 .0140462
+ 375596.50 .2986055 .0141192
+ 375628.09 .2874832 .0132373
+ 375659.72 .3111304 .0146844
+ 375691.31 .2907803 .0138853
+ 375722.91 .2968152 .0141893
+ 375754.59 .3016835 .0143423
+ 375786.19 .2956109 .0144542
+ 375817.78 .2902000 .0140467
+ 375849.47 .3392624 .0162941
+ 375881.09 .2809429 .0131425
+ 375912.69 .2876972 .0134903
+ 375944.31 .2972141 .0140217
+ 375976.00 .3093024 .0145412
+ 376007.66 .3206058 .0149104
+ 376039.28 .2942588 .0142202
+ 376070.97 .2895431 .0140870
+ 376102.62 .3134347 .0151111
+ 376134.28 .2946583 .0146339
+ 376165.94 .3072008 .0148498
+ 376197.66 .3218236 .0156461
+ 376229.31 .3084696 .0150137
+ 376260.97 .3090163 .0148171
+ 376292.69 .2808613 .0136844
+ 376324.38 .2943416 .0143140
+ 376356.03 .3159961 .0152560
+ 376387.72 .2986884 .0141868
+ 376419.47 .3006721 .0143720
+ 376451.16 .2750260 .0131772
+ 376482.84 .2996401 .0141346
+ 376514.59 .2941775 .0139269
+ 376546.31 .2948531 .0135947
+ 376578.00 .3208899 .0151386
+ 376609.72 .2926602 .0138743
+ 376641.50 .3019138 .0143658
+ 376673.22 .3024312 .0145251
+ 376704.94 .3028688 .0152107
+ 376736.72 .3221519 .0158469
+ 376768.44 .3167283 .0156071
+ 376800.16 .3243186 .0159598
+ 376831.91 .3053977 .0150144
+ 376863.72 .2863200 .0144276
+ 376895.44 .2874960 .0141171
+ 376927.19 .3124548 .0152885
+ 376959.00 .3232461 .0156916
+ 376990.78 .2853984 .0142172
+ 377022.53 .3361491 .0160476
+ 377054.28 .3154030 .0158194
+ 377086.12 .3114416 .0154735
+ 377117.91 .2796198 .0137470
+ 377149.66 .3028386 .0150843
+ 377181.50 .3070129 .0151433
+ 377213.28 .3015722 .0145322
+ 377245.09 .2910920 .0141523
+ 377276.88 .3200512 .0154627
+ 377308.75 .3163357 .0152407
+ 377340.53 .3041542 .0143625
+ 377372.34 .3045927 .0143762
+ 377404.22 .2978677 .0139350
+ 377436.03 .3053049 .0140797
+ 377467.84 .2792412 .0129361
+ 377499.66 .3092185 .0144534
+ 377531.53 .3108507 .0144706
+ 377563.38 .3057359 .0143452
+ 377595.22 .3270848 .0153082
+ 377627.09 .3081759 .0144376
+ 377658.94 .2886310 .0132706
+ 377690.78 .2757890 .0133556
+ 377722.62 .2909715 .0135696
+ 377754.56 .3056809 .0142397
+ 377786.41 .2928975 .0134517
+ 377818.28 .3046636 .0141441
+ 377850.19 .3111514 .0145076
+ 377882.06 .2981953 .0140242
+ 377913.94 .2840762 .0134222
+ 377945.88 .3074968 .0147319
+ 377977.75 .3197922 .0151761
+ 378009.62 .3213479 .0153186
+ 378041.53 .3103466 .0147160
+ 378073.47 .2915684 .0138869
+ 378105.38 .3042418 .0144096
+ 378137.28 .2840654 .0134317
+ 378169.25 .2830049 .0134139
+ 378201.16 .2986325 .0139164
+ 378233.06 .3205390 .0149067
+ 378265.00 .3217809 .0151230
+ 378296.97 .3149468 .0148313
+ 378328.91 .3224550 .0151927
+ 378360.81 .3039015 .0145416
+ 378392.81 .3048710 .0146956
+ 378424.75 .2870051 .0139878
+ 378456.69 .3368092 .0156498
+ 378488.66 .2939576 .0139668
+ 378520.66 .2970972 .0144589
+ 378552.62 .3102119 .0152796
+ 378584.56 .3326972 .0157176
+ 378616.59 .2830075 .0141737
+ 378648.56 .3087887 .0154188
+ 378680.53 .3100643 .0153074
+ 378712.50 .3040894 .0149392
+ 378744.53 .2761495 .0139784
+ 378776.53 .3072037 .0151423
+ 378808.50 .2981089 .0150448
+ 378840.56 .3275984 .0161373
+ 378872.56 .2954917 .0148286
+ 378904.56 .2921847 .0141807
+ 378936.56 .3096000 .0151368
+ 378968.62 .2844552 .0140924
+ 379000.62 .3027525 .0148273
+ 379032.66 .2965421 .0145535
+ 379064.72 .3021084 .0144960
+ 379096.75 .3072622 .0147298
+ 379128.78 .2881202 .0140622
+ 379160.81 .3029231 .0141808
+ 379192.91 .3150429 .0148046
+ 379224.94 .3118210 .0146064
+ 379257.00 .2844936 .0133751
+ 379289.09 .3047679 .0146563
+ 379321.16 .3145669 .0152910
+ 379353.19 .2993765 .0143977
+ 379385.25 .3305454 .0156424
+ 379417.38 .3031684 .0150422
+ 379449.47 .3103362 .0152506
+ 379481.53 .3353162 .0164716
+ 379513.66 .3114614 .0153395
+ 379545.75 .3036076 .0153822
+ 379577.81 .3050722 .0155214
+ 379609.91 .3227859 .0159708
+ 379642.06 .3302487 .0163038
+ 379674.16 .2852696 .0145151
+ 379706.25 .3245723 .0163741
+ 379738.44 .2889935 .0149181
+ 379770.53 .3127379 .0162004
+ 379802.66 .2874716 .0148268
+ 379834.81 .2879909 .0149785
+ 379866.94 .2887914 .0151508
+ 379899.06 .3008877 .0154714
+ 379931.19 .3004513 .0161504
+ 379963.41 .2844796 .0146347
+ 379995.53 .2993248 .0149412
+ 380027.66 .3055654 .0155375
+ 380059.88 .3164564 .0154822
+ 380092.03 .3050743 .0149015
+ 380124.19 .3078358 .0151426
+ 380156.34 .3234150 .0158582
+ 380188.56 .3127795 .0149281
+ 380220.72 .3091253 .0150510
+ 380252.91 .2953257 .0144955
+ 380285.12 .2946096 .0144546
+ 380317.31 .3007255 .0148288
+ 380349.50 .3219939 .0158253
+ 380381.69 .2785462 .0134358
+ 380413.94 .2897640 .0143630
+ 380446.12 .2885667 .0142011
+ 380478.31 .2990244 .0141948
+ 380510.59 .3101594 .0145256
+ 380542.78 .3034964 .0141815
+ 380575.00 .3136961 .0145848
+ 380607.22 .2888321 .0135125
+ 380639.50 .2928094 .0136595
+ 380671.72 .3069015 .0142758
+ 380703.94 .3336516 .0154874
+ 380736.22 .2937761 .0140520
+ 380768.47 .3029447 .0143062
+ 380800.72 .3236566 .0150667
+ 380832.94 .3024252 .0140526
+ 380865.25 .2976052 .0139409
+ 380897.50 .3023709 .0138350
+ 380929.78 .2881728 .0133216
+ 380962.09 .2998992 .0139853
+ 380994.34 .2955702 .0134540
+ 381026.62 .3023285 .0139096
+ 381058.88 .2981345 .0138893
+ 381091.22 .3025246 .0139105
+ 381123.50 .2921168 .0138442
+ 381155.78 .3155795 .0146260
+ 381188.16 .2901570 .0137362
+ 381220.44 .3303151 .0150394
+ 381252.72 .2709220 .0126291
+ 381285.03 .3150695 .0144778
+ 381317.41 .3038907 .0139163
+ 381349.72 .3319001 .0151748
+ 381382.03 .2942805 .0137196
+ 381414.41 .2955894 .0136342
+ 381446.72 .2960032 .0139757
+ 381479.03 .2985025 .0138696
+ 381511.38 .3018664 .0138751
+ 381543.78 .2894425 .0135161
+ 381576.09 .3145381 .0147241
+ 381608.44 .3163593 .0149093
+ 381640.84 .3058207 .0145833
+ 381673.22 .2938413 .0141310
+ 381705.56 .3063844 .0144751
+ 381737.91 .3227801 .0155942
+ 381770.34 .2948900 .0149823
+ 381802.72 .3040574 .0149492
+ 381835.06 .3326719 .0161463
+ 381867.50 .2840768 .0143207
+ 381899.91 .2894846 .0142768
+ 381932.28 .2953843 .0145689
+ 381964.72 .3209664 .0157293
+ 381997.12 .3124413 .0151700
+ 382029.50 .3057353 .0149159
+ 382061.91 .3031813 .0146340
+ 382094.38 .3177099 .0155421
+ 382126.78 .3074278 .0149892
+ 382159.19 .2995980 .0145667
+ 382191.66 .3059587 .0144727
+ 382224.09 .3379713 .0160692
+ 382256.50 .3041964 .0146131
+ 382288.94 .2950626 .0138932
+ 382321.44 .2990212 .0140797
+ 382353.88 .2953410 .0143368
+ 382386.31 .2987288 .0145744
+ 382418.81 .3211796 .0153997
+ 382451.28 .3072587 .0147517
+ 382483.72 .2992368 .0143461
+ 382516.19 .2989841 .0143211
+ 382548.72 .3014415 .0145137
+ 382581.16 .2936758 .0142094
+ 382613.62 .3121733 .0144210
+ 382646.19 .2788700 .0135071
+ 382678.66 .3109232 .0142644
+ 382711.12 .3127922 .0144949
+ 382743.62 .2781218 .0132260
+ 382776.16 .3145945 .0118206
+ 382808.66 .3161343 .0120046
+ 382841.16 .2881222 .0111824
+ 382873.72 .3004420 .0116591
+ 382906.25 .3053093 .0118447
+ 382938.75 .3066414 .0120184
+ 382971.25 .2923030 .0115113
+ 383003.84 .2952598 .0116954
+ 383036.38 .2937257 .0116307
+ 383068.91 .2997953 .0119675
+ 383101.50 .2821937 .0111427
+ 383134.03 .3091940 .0120389
+ 383166.56 .2879653 .0111361
+ 383199.09 .2936911 .0113487
+ 383231.72 .2782716 .0108612
+ 383264.28 .3076483 .0116884
+ 383296.81 .2857375 .0109327
+ 383329.44 .2894372 .0109952
+ 383362.00 .3110718 .0118463
+ 383394.59 .2934911 .0112950
+ 383427.16 .2876616 .0109806
+ 383459.78 .3068109 .0116732
+ 383492.38 .2904356 .0113211
+ 383524.97 .3103713 .0119862
+ 383557.62 .2804281 .0111145
+ 383590.22 .2889161 .0110687
+ 383622.81 .2923327 .0112431
+ 383655.41 .3183235 .0118982
+ 383688.09 .2937695 .0110702
+ 383720.69 .2856802 .0105679
+ 383753.31 .2990185 .0110484
+ 383786.00 .2786500 .0103673
+ 383818.59 .2941373 .0108434
+ 383851.25 .2831957 .0103806
+ 383883.94 .3087807 .0111727
+ 383916.56 .2878600 .0105842
+ 383949.22 .3066395 .0111781
+ 383981.84 .2946211 .0110195
+ 384014.56 .2865663 .0107857
+ 384047.22 .2828461 .0106742
+ 384079.88 .2921745 .0109283
+ 384112.59 .2707707 .0102421
+ 384145.25 .2857991 .0106072
+ 384177.94 .3049891 .0114573
+ 384210.59 .3010784 .0111828
+ 384243.34 .2726088 .0102774
+ 384276.03 .2738714 .0105920
+ 384308.69 .2937155 .0111417
+ 384341.47 .3075528 .0115807
+ 384374.16 .2899964 .0110519
+ 384406.84 .2700033 .0104246
+ 384439.56 .2903419 .0109511
+ 384472.31 .2953389 .0110714
+ 384505.03 .2870967 .0108554
+ 384537.75 .3005750 .0112431
+ 384570.53 .2787318 .0104793
+ 384603.25 .2872317 .0108665
+ 384635.97 .2668724 .0102852
+ 384668.72 .3006670 .0113417
+ 384701.50 .2836411 .0106885
+ 384734.25 .2940001 .0110491
+ 384767.00 .2955053 .0112803
+ 384799.81 .2668431 .0105448
+ 384832.56 .2735618 .0107097
+ 384865.31 .2879439 .0111074
+ 384898.06 .2926337 .0114266
+ 384930.91 .2791889 .0108194
+ 384963.66 .2793714 .0108941
+ 384996.44 .2956133 .0111722
+ 385029.28 .2903833 .0110264
+ 385062.06 .2752584 .0104284
+ 385094.84 .2824109 .0105396
+ 385127.62 .2796307 .0102339
+ 385160.50 .2781828 .0105619
+ 385193.28 .2905083 .0108006
+ 385226.09 .2928544 .0109630
+ 385258.97 .2856296 .0107448
+ 385291.78 .2785231 .0106080
+ 385324.59 .2918861 .0112176
+ 385357.41 .2947601 .0112309
+ 385390.31 .2802527 .0108837
+ 385423.12 .2826951 .0108565
+ 385455.97 .2906371 .0112171
+ 385488.84 .2995969 .0115296
+ 385521.69 .2760276 .0107933
+ 385554.53 .2605527 .0101402
+ 385587.38 .2665274 .0104359
+ 385620.31 .2821158 .0108740
+ 385653.16 .2794122 .0108625
+ 385686.03 .2729675 .0105462
+ 385718.94 .2797876 .0111324
+ 385751.81 .2976951 .0116218
+ 385784.69 .2904083 .0115505
+ 385817.62 .2828281 .0112547
+ 385850.53 .2942768 .0116259
+ 385883.41 .2833630 .0111205
+ 385916.31 .2853650 .0112060
+ 385949.25 .2805899 .0109604
+ 385982.16 .2854793 .0113290
+ 386015.06 .2817579 .0111052
+ 386048.03 .2769998 .0108205
+ 386080.94 .2869519 .0109866
+ 386113.84 .2682219 .0104631
+ 386146.78 .2848224 .0107248
+ 386179.75 .2755220 .0103102
+ 386212.69 .2760840 .0103003
+ 386245.62 .2870860 .0108967
+ 386278.62 .3005143 .0109463
+ 386311.56 .2984920 .0111113
+ 386344.50 .2815755 .0107009
+ 386377.47 .2614892 .0099506
+ 386410.47 .2788587 .0106542
+ 386443.44 .2910931 .0110898
+ 386476.41 .3045321 .0117229
+ 386509.44 .2719382 .0108007
+ 386542.41 .2834589 .0109615
+ 386575.38 .2810882 .0110342
+ 386608.34 .2779377 .0110472
+ 386641.41 .2572260 .0101247
+ 386674.41 .3019615 .0116188
+ 386707.38 .2914353 .0113664
+ 386740.44 .2961681 .0114603
+ 386773.44 .2863586 .0113515
+ 386806.44 .2837722 .0111565
+ 386839.47 .2883759 .0112164
+ 386872.53 .2873611 .0110157
+ 386905.56 .2616311 .0104774
+ 386938.56 .2830673 .0109056
+ 386971.66 .2836571 .0110995
+ 387004.69 .2803844 .0110022
+ 387037.72 .2697620 .0107531
+ 387070.78 .2904618 .0114152
+ 387103.88 .3104596 .0120194
+ 387136.91 .2918698 .0113861
+ 387169.97 .2806599 .0110147
+ 387203.09 .2942762 .0112913
+ 387236.16 .2646081 .0105165
+ 387269.22 .2746645 .0106112
+ 387302.28 .2799200 .0107921
+ 387335.41 .2769208 .0107013
+ 387368.50 .2756447 .0108952
+ 387401.56 .2819089 .0109250
+ 387434.72 .2838348 .0112951
+ 387467.81 .2901165 .0113238
+ 387500.91 .2788866 .0110088
+ 387534.00 .2968420 .0116300
+ 387567.16 .2928746 .0114086
+ 387600.28 .2810265 .0110776
+ 387633.38 .2879427 .0112482
+ 387666.56 .2741277 .0107690
+ 387699.69 .2788755 .0110140
+ 387732.81 .2876525 .0112350
+ 387765.94 .2995933 .0114734
+ 387799.12 .2892128 .0108860
+ 387832.28 .2924010 .0110677
+ 387865.41 .2927004 .0112374
+ 387898.62 .2883036 .0109929
+ 387931.75 .2889266 .0112186
+ 387964.91 .2678908 .0104645
+ 387998.12 .2765340 .0108956
+ 388031.31 .2795638 .0109422
+ 388064.47 .2869272 .0110344
+ 388097.62 .2810426 .0109193
+ 388130.88 .2764199 .0106574
+ 388164.06 .2817887 .0105974
+ 388197.25 .3015091 .0111158
+ 388230.50 .2912585 .0106528
+ 388263.69 .2787257 .0105447
+ 388296.88 .2902583 .0108753
+ 388330.06 .2733940 .0102768
+ 388363.34 .2657425 .0099790
+ 388396.56 .2790153 .0103588
+ 388429.75 .2798561 .0102295
+ 388463.03 .2924264 .0104583
+ 388496.25 .2846077 .0102480
+ 388529.50 .2847488 .0102051
+ 388562.72 .2881369 .0103241
+ 388596.03 .2900178 .0104656
+ 388629.25 .3002754 .0110135
+ 388662.50 .2788899 .0102723
+ 388695.81 .2649124 .0100958
+ 388729.06 .2859366 .0110951
+ 388762.31 .2946342 .0115883
+ 388795.56 .2928861 .0115739
+ 388828.91 .2878329 .0115230
+ 388862.16 .2903573 .0115177
+ 388895.44 .2732054 .0109475
+ 388928.78 .2892613 .0110247
+ 388962.06 .2699804 .0103344
+ 388995.34 .2874599 .0108609
+ 389028.62 .2877151 .0107747
+ 389062.00 .2890239 .0107662
+ 389095.28 .2891648 .0107924
+ 389128.59 .2987570 .0111947
+ 389161.97 .2793205 .0105099
+ 389195.28 .2767923 .0103998
+ 389228.59 .2829087 .0107077
+ 389261.91 .2903474 .0108136
+ 389295.31 .2748170 .0103637
+ 389328.62 .3057443 .0112582
+ 389361.97 .2853623 .0105981
+ 389395.38 .3005557 .0114886
+ 389428.72 .2641712 .0102173
+ 389462.06 .2818165 .0108497
+ 389495.41 .2853193 .0112388
+ 389528.81 .2823945 .0110026
+ 389562.19 .2909304 .0115080
+ 389595.53 .2924443 .0115776
+ 389628.97 .2886881 .0114109
+ 389662.34 .3041506 .0119525
+ 389695.72 .2887286 .0115461
+ 389729.09 .2960423 .0118808
+ 389762.53 .3023468 .0118518
+ 389795.94 .2876649 .0114845
+ 389829.31 .2753200 .0109620
+ 389862.78 .2843088 .0111809
+ 389896.19 .2761597 .0107769
+ 389929.59 .3067166 .0116195
+ 389963.06 .2900095 .0111778
+ 389996.47 .2862116 .0110188
+ 390029.91 .2897099 .0111368
+ 390063.31 .2887331 .0111261
+ 390096.81 .2939949 .0113119
+ 390130.25 .3003663 .0114691
+ 390163.69 .2727904 .0106970
+ 390197.19 .2688514 .0105631
+ 390230.62 .2845467 .0109498
+ 390264.06 .2798383 .0108265
+ 390297.53 .2939866 .0110849
+ 390331.03 .2966631 .0112025
+ 390364.50 .3005253 .0109181
+ 390397.97 .2972683 .0106196
+ 390431.50 .2788773 .0101834
+ 390464.97 .2915331 .0104211
+ 390498.47 .2967148 .0105743
+ 390531.94 .2858961 .0104298
+ 390565.50 .2901301 .0104885
+ 390598.97 .2937705 .0108032
+ 390632.47 .2868995 .0106496
+ 390666.03 .2984187 .0110325
+ 390699.56 .2753009 .0102664
+ 390733.06 .2784856 .0105088
+ 390766.56 .2777658 .0105281
+ 390800.16 .2773993 .0105018
+ 390833.69 .2988395 .0112454
+ 390867.19 .2701978 .0103909
+ 390900.78 .2773418 .0104588
+ 390934.31 .2881373 .0109802
+ 390967.88 .2823499 .0103917
+ 391001.41 .2854947 .0105261
+ 391035.03 .2963163 .0109124
+ 391068.56 .3039457 .0110682
+ 391102.12 .2941181 .0107794
+ 391135.75 .2939667 .0107586
+ 391169.31 .2876868 .0107133
+ 391202.88 .2938926 .0110082
+ 391236.47 .2983996 .0112208
+ 391270.09 .2830746 .0106383
+ 391303.69 .2944291 .0110213
+ 391337.28 .2912641 .0110229
+ 391370.94 .3089936 .0117592
+ 391404.53 .3000995 .0113486
+ 391438.12 .3008246 .0113220
+ 391471.72 .2654408 .0102267
+ 391505.41 .2936697 .0109324
+ 391539.00 .2756413 .0101760
+ 391572.62 .2792182 .0102958
+ 391606.31 .2847139 .0105360
+ 391639.94 .2951025 .0107735
+ 391673.56 .2874070 .0105505
+ 391707.19 .3002032 .0111600
+ 391740.91 .2833379 .0108528
+ 391774.56 .2862002 .0110512
+ 391808.19 .2931044 .0113903
+ 391841.91 .2866169 .0111426
+ 391875.56 .2866184 .0111034
+ 391909.22 .2956277 .0112207
+ 391942.91 .2811178 .0108239
+ 391976.62 .2971072 .0110816
+ 392010.31 .2964123 .0113812
+ 392043.97 .2892076 .0109481
+ 392077.72 .3044664 .0116186
+ 392111.41 .2948970 .0112749
+ 392145.09 .2648925 .0103457
+ 392178.84 .2899642 .0113748
+ 392212.56 .3076157 .0116593
+ 392246.25 .2902761 .0114184
+ 392279.97 .2946693 .0114153
+ 392313.75 .3050355 .0116329
+ 392347.47 .2949709 .0110398
+ 392381.19 .3034698 .0113019
+ 392414.97 .2994749 .0111183
+ 392448.69 .2924416 .0104992
+ 392482.44 .3200873 .0116436
+ 392516.19 .2835156 .0103661
+ 392549.97 .3023817 .0108931
+ 392583.72 .3096399 .0111660
+ 392617.47 .2782094 .0104266
+ 392651.31 .2910712 .0106070
+ 392685.06 .2842880 .0106059
+ 392718.81 .2762890 .0103042
+ 392752.59 .3072835 .0114368
+ 392786.44 .2843839 .0106852
+ 392820.22 .2825992 .0105575
+ 392854.00 .3116052 .0114652
+ 392887.84 .3031776 .0111926
+ 392921.62 .3139384 .0115304
+ 392955.44 .2783312 .0105172
+ 392989.22 .3129305 .0116779
+ 393023.09 .3041821 .0114217
+ 393056.91 .2897875 .0107793
+ 393090.72 .2891302 .0110944
+ 393124.59 .3004419 .0113852
+ 393158.41 .2924596 .0111611
+ 393192.25 .2820924 .0108349
+ 393226.06 .2944241 .0111198
+ 393259.97 .3156469 .0118182
+ 393293.81 .3007371 .0114581
+ 393327.66 .3072574 .0113132
+ 393361.56 .3016726 .0109430
+ 393395.41 .3158173 .0115457
+ 393429.28 .2985996 .0108745
+ 393463.12 .2957107 .0106132
+ 393497.06 .3017829 .0108912
+ 393530.94 .2787419 .0101869
+ 393564.81 .2887841 .0105195
+ 393598.75 .2752896 .0102708
+ 393632.62 .3106900 .0111025
+ 393666.53 .2994975 .0109511
+ 393700.41 .3033216 .0111988
+ 393734.38 .3008830 .0111793
+ 393768.28 .2861088 .0107149
+ 393802.19 .2891601 .0108275
+ 393836.16 .2940846 .0110578
+ 393870.06 .2822791 .0107845
+ 393903.97 .2867652 .0109407
+ 393937.91 .2869015 .0108467
+ 393971.91 .2766260 .0106132
+ 394005.81 .2815148 .0108524
+ 394039.75 .3083710 .0115737
+ 394073.75 .2829072 .0108712
+ 394107.72 .2706511 .0105178
+ 394141.66 .2936994 .0112986
+ 394175.69 .3155354 .0117919
+ 394209.62 .2945494 .0112160
+ 394243.59 .2864950 .0108393
+ 394277.56 .2836755 .0107517
+ 394311.59 .2951262 .0109653
+ 394345.56 .2800333 .0102694
+ 394379.53 .2927064 .0105192
+ 394413.59 .3071211 .0111598
+ 394447.59 .2946662 .0108173
+ 394481.56 .2953839 .0109664
+ 394515.56 .2998857 .0110164
+ 394549.62 .2881192 .0109107
+ 394583.66 .2863719 .0107062
+ 394617.66 .2990758 .0112347
+ 394651.72 .2841527 .0106149
+ 394685.75 .2845181 .0106860
+ 394719.78 .2916486 .0108498
+ 394753.81 .2833747 .0105862
+ 394787.91 .2813838 .0103222
+ 394821.94 .2937418 .0105808
+ 394855.97 .2924873 .0107871
+ 394890.09 .2857364 .0105800
+ 394924.12 .2907774 .0107186
+ 394958.19 .2862526 .0105876
+ 394992.25 .3306485 .0119847
+ 395026.38 .3069252 .0112491
+ 395060.44 .2813891 .0105648
+ 395094.50 .3070632 .0111429
+ 395128.66 .2836372 .0105876
+ 395162.72 .2915302 .0108648
+ 395196.81 .2840009 .0106483
+ 395230.91 .2851674 .0107347
+ 395265.06 .2811345 .0106762
+ 395299.16 .2850416 .0107088
+ 395333.25 .3070156 .0114720
+ 395367.44 .2929190 .0110852
+ 395401.56 .2951725 .0108244
+ 395435.66 .3004184 .0110343
+ 395469.78 .2786062 .0099630
+ 395503.97 .3024022 .0105145
+ 395538.09 .2906853 .0100935
+ 395572.25 .3190527 .0108071
+ 395606.44 .3057005 .0106191
+ 395640.59 .3038906 .0104591
+ 395674.72 .3032320 .0104571
+ 395708.88 .2961238 .0104361
+ 395743.09 .3059708 .0106682
+ 395777.25 .2880021 .0103900
+ 395811.44 .2912729 .0107060
+ 395845.66 .2974918 .0109432
+ 395879.84 .3102745 .0114382
+ 395914.00 .2961065 .0110229
+ 395948.19 .3088041 .0110978
+ 395982.44 .2897775 .0105289
+ 396016.62 .3041096 .0111286
+ 396050.81 .2957143 .0109358
+ 396085.09 .3044889 .0110913
+ 396119.28 .2833148 .0104711
+ 396153.50 .3180247 .0113398
+ 396187.78 .3021539 .0109920
+ 396222.00 .3073833 .0112048
+ 396256.22 .2867612 .0106143
+ 396290.44 .2951163 .0107884
+ 396324.75 .3012753 .0111356
+ 396358.97 .2924790 .0109160
+ 396393.22 .2880688 .0107248
+ 396427.53 .2939385 .0109490
+ 396461.78 .3081002 .0114207
+ 396496.03 .3064609 .0112990
+ 396530.28 .3095119 .0115759
+ 396564.62 .2965725 .0111564
+ 396598.88 .2951199 .0109700
+ 396633.16 .3242945 .0121606
+ 396667.50 .2993959 .0114645
+ 396701.78 .3038097 .0115288
+ 396736.06 .2894274 .0111794
+ 396770.34 .2817959 .0108325
+ 396804.69 .2961460 .0113971
+ 396839.00 .2981405 .0114473
+ 396873.31 .3090148 .0117323
+ 396907.69 .3042930 .0116108
+ 396941.97 .3022274 .0114263
+ 396976.31 .3151719 .0120463
+ 397010.62 .2891909 .0109631
+ 397045.00 .3018452 .0112724
+ 397079.34 .2843472 .0107141
+ 397113.66 .3156946 .0114957
+ 397148.06 .3178751 .0114326
+ 397182.41 .3037886 .0107742
+ 397216.75 .3169481 .0112120
+ 397251.12 .2866256 .0103099
+ 397285.53 .3037862 .0106173
+ 397319.91 .2960772 .0102870
+ 397354.25 .2974591 .0104268
+ 397388.69 .3174036 .0109632
+ 397423.06 .2843061 .0102576
+ 397457.44 .3004181 .0104423
+ 397491.81 .3064556 .0108224
+ 397526.28 .2918100 .0103622
+ 397560.66 .2906890 .0104529
+ 397595.06 .2831065 .0101985
+ 397629.53 .2996592 .0107603
+ 397663.94 .2967795 .0106945
+ 397698.34 .3186327 .0112140
+ 397732.75 .2948562 .0107063
+ 397767.25 .3044241 .0112464
+ 397801.66 .2986666 .0109204
+ 397836.09 .2976711 .0109853
+ 397870.59 .3206358 .0115930
+ 397905.03 .2993199 .0110563
+ 397939.47 .2926124 .0108121
+ 397973.91 .3003277 .0111148
+ 398008.41 .2914394 .0107862
+ 398042.88 .3245838 .0116197
+ 398077.34 .3086495 .0112982
+ 398111.88 .3051789 .0112088
+ 398146.31 .2872551 .0106355
+ 398180.81 .2982361 .0110196
+ 398215.28 .2957943 .0108413
+ 398249.81 .2992018 .0110017
+ 398284.31 .3055211 .0108912
+ 398318.78 .2912228 .0106798
+ 398353.34 .2904826 .0107060
+ 398387.84 .3002231 .0108023
+ 398422.34 .2886007 .0104470
+ 398456.94 .2913048 .0107853
+ 398491.44 .3074919 .0111370
+ 398525.97 .2858936 .0102394
+ 398560.47 .3106404 .0110682
+ 398595.06 .2904521 .0102974
+ 398629.59 .3015345 .0106677
+ 398664.12 .2903787 .0101881
+ 398698.75 .2967959 .0105731
+ 398733.28 .3071077 .0107835
+ 398767.84 .3010094 .0106416
+ 398802.38 .3073694 .0108602
+ 398837.00 .2955772 .0106258
+ 398871.56 .2893672 .0105115
+ 398906.12 .3232146 .0116004
+ 398940.78 .3028204 .0110251
+ 398975.34 .3017769 .0111976
+ 399009.94 .2959723 .0108780
+ 399044.50 .3066087 .0112752
+ 399079.16 .2999956 .0110260
+ 399113.75 .3148014 .0116858
+ 399148.34 .2981881 .0109339
+ 399183.03 .3283736 .0118038
+ 399217.62 .2940268 .0108385
+ 399252.25 .3026527 .0109184
+ 399286.84 .3032930 .0112026
+ 399321.53 .3107746 .0113843
+ 399356.16 .2869858 .0106044
+ 399390.78 .2997432 .0109134
+ 399425.50 .3028153 .0111173
+ 399460.12 .2988081 .0109361
+ 399494.78 .2891876 .0106893
+ 399529.41 .2931952 .0106688
+ 399564.12 .3019944 .0110871
+ 399598.78 .2920024 .0110029
+ 399633.44 .2910113 .0107481
+ 399668.19 .2957688 .0109133
+ 399702.84 .2744039 .0103356
+ 399737.53 .2916401 .0107410
+ 399772.19 .2982222 .0109548
+ 399806.94 .3219202 .0116870
+ 399841.62 .2935826 .0107903
+ 399876.34 .2856764 .0106461
+ 399911.09 .2952382 .0108127
+ 399945.78 .2846647 .0105387
+ 399980.50 .3004238 .0109471
+ 400015.22 .3020044 .0111420
+ 400050.00 .3020015 .0109950
+ 400084.72 .2788237 .0104334
+ 400119.44 .2910074 .0109232
+ 400154.22 .2889622 .0107885
+ 400188.97 .3134578 .0114248
+ 400223.69 .2960837 .0110370
+ 400258.44 .3079914 .0112898
+ 400293.25 .3046590 .0111227
+ 400328.00 .3022443 .0110440
+ 400362.75 .2736412 .0103073
+ 400397.59 .3024708 .0109910
+ 400432.34 .2976201 .0111813
+ 400467.12 .3143931 .0115347
+ 400501.97 .3122619 .0114281
+ 400536.75 .2927044 .0106857
+ 400571.53 .2953141 .0107872
+ 400606.31 .3263449 .0116939
+ 400641.16 .3029519 .0107752
+ 400675.97 .2970152 .0105778
+ 400710.75 .2896267 .0101284
+ 400745.62 .3050364 .0107071
+ 400780.44 .3073625 .0110699
+ 400815.25 .2893004 .0101692
+ 400850.06 .2829365 .0099016
+ 400884.97 .3039841 .0105079
+ 400919.78 .2939198 .0103928
+ 400954.62 .3146169 .0108087
+ 400989.53 .2956903 .0104876
+ 401024.38 .3020084 .0105532
+ 401059.22 .3064600 .0107309
+ 401094.06 .3023720 .0106891
+ 401129.00 .2967860 .0104504
+ 401163.84 .3057957 .0108395
+ 401198.72 .3219155 .0112379
+ 401233.66 .3133253 .0110889
+ 401268.53 .3026164 .0106948
+ 401303.41 .2875613 .0102735
+ 401338.28 .2861296 .0101110
+ 401373.22 .3163023 .0111761
+ 401408.12 .3092818 .0106598
+ 401443.03 .2947544 .0103290
+ 401478.00 .2923180 .0102047
+ 401512.91 .2899545 .0101005
+ 401547.81 .2868358 .0100437
+ 401582.72 .2895893 .0100572
+ 401617.72 .2882890 .0098977
+ 401652.62 .3159541 .0109129
+ 401687.56 .2959068 .0103382
+ 401722.56 .3059427 .0105747
+ 401757.50 .3114895 .0107282
+ 401792.44 .2758381 .0097354
+ 401827.38 .2908916 .0101385
+ 401862.41 .3029674 .0106568
+ 401897.34 .2967197 .0106782
+ 401932.31 .2892100 .0102248
+ 401967.34 .3065620 .0110786
+ 402002.31 .2972588 .0109136
+ 402037.28 .3166370 .0114235
+ 402072.25 .2990638 .0111308
+ 402107.31 .3173238 .0118972
+ 402142.31 .3009388 .0111211
+ 402177.28 .3152302 .0117045
+ 402212.34 .2971897 .0108767
+ 402247.34 .3023687 .0108646
+ 402282.38 .3093076 .0110584
+ 402317.38 .2996306 .0109278
+ 402352.47 .3060843 .0107894
+ 402387.47 .2917410 .0103289
+ 402422.50 .3117256 .0108132
+ 402457.59 .3139428 .0110250
+ 402492.62 .3213896 .0111813
+ 402527.66 .2906842 .0103330
+ 402562.72 .3073192 .0107878
+ 402597.81 .3234536 .0112047
+ 402632.88 .2918462 .0101938
+ 402667.94 .3064648 .0108361
+ 402703.06 .2982860 .0106305
+ 402738.12 .2743508 .0100330
+ 402773.19 .3114502 .0113147
+ 402808.34 .3164009 .0111263
+ 402843.41 .3064952 .0109868
+ 402878.50 .3068905 .0110360
+ 402913.59 .2989607 .0107862
+ 402948.75 .2991844 .0105102
+ 402983.84 .3016762 .0107807
+ 403018.94 .2972851 .0107296
+ 403054.12 .3081745 .0110018
+ 403089.22 .2902184 .0105428
+ 403124.34 .2965345 .0105093
+ 403159.47 .3169746 .0113472
+ 403194.66 .3130154 .0109913
+ 403229.78 .3119577 .0111185
+ 403264.91 .3047310 .0107954
+ 403300.12 .2842922 .0104555
+ 403335.25 .3123873 .0112250
+ 403370.41 .3063436 .0110505
+ 403405.56 .3232195 .0115433
+ 403440.78 .2916540 .0106411
+ 403475.94 .2930559 .0105702
+ 403511.12 .2967910 .0105243
+ 403546.34 .2908442 .0103967
+ 403581.53 .3050603 .0106822
+ 403616.72 .2924937 .0102745
+ 403651.91 .2980481 .0104594
+ 403687.16 .3163847 .0110769
+ 403722.34 .2885892 .0101696
+ 403757.53 .3205306 .0111636
+ 403792.81 .2938415 .0104330
+ 403828.03 .3224915 .0111483
+ 403863.22 .3058785 .0106942
+ 403898.44 .2921058 .0103526
+ 403933.75 .2931945 .0103845
+ 403968.97 .3098360 .0109265
+ 404004.19 .2922136 .0104626
+ 404039.50 .3149731 .0110102
+ 404074.75 .2937070 .0105159
+ 404109.97 .3146782 .0109938
+ 404145.22 .3224815 .0113460
+ 404180.56 .2982402 .0108543
+ 404215.81 .3018732 .0108163
+ 404251.06 .3067340 .0108874
+ 404286.41 .2970370 .0107330
+ 404321.69 .3132851 .0111925
+ 404356.97 .3133203 .0110661
+ 404392.25 .3000436 .0107443
+ 404427.59 .3002950 .0106517
+ 404462.88 .2934477 .0106050
+ 404498.19 .3026025 .0106985
+ 404533.53 .2731650 .0099828
+ 404568.84 .3116311 .0110411
+ 404604.16 .3034577 .0109242
+ 404639.47 .2980417 .0104633
+ 404674.84 .3244306 .0111928
+ 404710.19 .2981273 .0104498
+ 404745.50 .3125499 .0108851
+ 404780.91 .2976618 .0105036
+ 404816.25 .3054343 .0108067
+ 404851.59 .3282825 .0114460
+ 404887.00 .3079726 .0110164
+ 404922.34 .2956358 .0106972
+ 404957.72 .2989684 .0108004
+ 404993.06 .2962171 .0108304
+ 405028.50 .3070445 .0110895
+ 405063.88 .3137698 .0113939
+ 405099.25 .3114026 .0110136
+ 405134.69 .2879348 .0104880
+ 405170.06 .3117438 .0110143
+ 405205.47 .2859667 .0101813
+ 405240.84 .3003673 .0106370
+ 405276.31 .3030090 .0106025
+ 405311.72 .2952268 .0105123
+ 405347.12 .3055389 .0106293
+ 405382.59 .2927769 .0105584
+ 405418.03 .3198025 .0111953
+ 405453.44 .3128958 .0109951
+ 405488.88 .2989807 .0104298
+ 405524.38 .3095803 .0107472
+ 405559.81 .3081807 .0105461
+ 405595.25 .3118499 .0106687
+ 405630.75 .3039586 .0102639
+ 405666.19 .2989098 .0101030
+ 405701.66 .3053022 .0104550
+ 405737.09 .3050234 .0102714
+ 405772.62 .3245418 .0109290
+ 405808.09 .3083899 .0104041
+ 405843.56 .3097826 .0104436
+ 405879.12 .3036550 .0103375
+ 405914.59 .2852803 .0096715
+ 405950.09 .3017500 .0102268
+ 405985.56 .3161774 .0107447
+ 406021.12 .2935269 .0102042
+ 406056.62 .3137034 .0107308
+ 406092.16 .3027366 .0103524
+ 406127.72 .3159212 .0108905
+ 406163.22 .2960733 .0105298
+ 406198.75 .3229910 .0112820
+ 406234.28 .3166102 .0110598
+ 406269.88 .3151257 .0113547
+ 406305.41 .3042320 .0109104
+ 406340.94 .3108663 .0114232
+ 406376.56 .3149348 .0114190
+ 406412.09 .3033543 .0108508
+ 406447.66 .2948472 .0105010
+ 406483.19 .3026018 .0107472
+ 406518.81 .3145871 .0111548
+ 406554.41 .3108744 .0109120
+ 406589.97 .3048791 .0108553
+ 406625.59 .3203404 .0111953
+ 406661.19 .3090855 .0110399
+ 406696.78 .2970447 .0104912
+ 406732.34 .2913264 .0104435
+ 406768.00 .3131356 .0110809
+ 406803.62 .2873781 .0101495
+ 406839.22 .3005055 .0107500
+ 406874.88 .3078707 .0109256
+ 406910.50 .3054754 .0108621
+ 406946.12 .3135875 .0110816
+ 406981.81 .2921743 .0105790
+ 407017.44 .3162939 .0113327
+ 407053.06 .3074939 .0109506
+ 407088.69 .2960792 .0109118
+ 407124.41 .3147868 .0114420
+ 407160.06 .3201978 .0115210
+ 407195.69 .2972533 .0107374
+ 407231.41 .3073570 .0110837
+ 407267.09 .3111045 .0111476
+ 407302.75 .3177983 .0112427
+ 407338.41 .3182590 .0110664
+ 407374.16 .3018683 .0105644
+ 407409.81 .3063289 .0105449
+ 407445.50 .3013189 .0106150
+ 407481.25 .3204898 .0110416
+ 407516.97 .3248055 .0112080
+ 407552.66 .2902678 .0105125
+ 407588.34 .3128916 .0112746
+ 407624.12 .2984465 .0107970
+ 407659.84 .3249737 .0116842
+ 407695.56 .2923883 .0105650
+ 407731.34 .3015026 .0106444
+ 407767.06 .2999581 .0106245
+ 407802.78 .3108719 .0109737
+ 407838.53 .3149942 .0109290
+ 407874.34 .3083110 .0106788
+ 407910.06 .3094861 .0105902
+ 407945.81 .2986834 .0101595
+ 407981.66 .3166693 .0105798
+ 408017.41 .3125227 .0105168
+ 408053.16 .3184163 .0108666
+ 408088.94 .2908017 .0101143
+ 408124.75 .2914219 .0100506
+ 408160.53 .3063746 .0108278
+ 408196.31 .3119442 .0110450
+ 408232.19 .3275501 .0113674
+ 408267.97 .2957340 .0105601
+ 408303.75 .3009176 .0107854
+ 408339.56 .3187074 .0112713
+ 408375.44 .2923484 .0104194
+ 408411.25 .3031939 .0107229
+ 408447.06 .3066376 .0108744
+ 408482.94 .2985284 .0105566
+ 408518.75 .3055838 .0106907
+ 408554.59 .3148020 .0110338
+ 408590.44 .3243349 .0113729
+ 408626.34 .3067935 .0106550
+ 408662.16 .3023201 .0106562
+ 408698.03 .3105888 .0108480
+ 408733.94 .3200107 .0111379
+ 408769.78 .2991990 .0104979
+ 408805.66 .3164821 .0109047
+ 408841.53 .3028595 .0106872
+ 408877.47 .2922546 .0102228
+ 408913.34 .3037605 .0106076
+ 408949.22 .3090553 .0108547
+ 408985.16 .3227959 .0111951
+ 409021.06 .3147467 .0108305
+ 409056.94 .3251771 .0113496
+ 409092.84 .3244718 .0113786
+ 409128.81 .2956920 .0105405
+ 409164.72 .2970965 .0106033
+ 409200.62 .3123100 .0108667
+ 409236.62 .3178951 .0108909
+ 409272.53 .3086786 .0105781
+ 409308.47 .3033151 .0101365
+ 409344.47 .3011211 .0101673
+ 409380.41 .3151085 .0104471
+ 409416.34 .3011236 .0099744
+ 409452.31 .3165208 .0107183
+ 409488.31 .3074571 .0104770
+ 409524.28 .3234835 .0111288
+ 409560.22 .3031646 .0105580
+ 409596.25 .3122869 .0108359
+ 409632.25 .3265225 .0112348
+ 409668.22 .3279457 .0111620
+ 409704.19 .3033206 .0104605
+ 409740.25 .3053305 .0103181
+ 409776.22 .3077424 .0103554
+ 409812.22 .3223252 .0107632
+ 409848.28 .3000135 .0101047
+ 409884.28 .3019987 .0102991
+ 409920.31 .3188512 .0106577
+ 409956.31 .3090164 .0106698
+ 409992.41 .2922722 .0101412
+ 410028.41 .2895546 .0101669
+ 410064.44 .3238667 .0111784
+ 410100.53 .3055676 .0106900
+ 410136.59 .2983426 .0104205
+ 410172.62 .3078962 .0106913
+ 410208.66 .3022861 .0104434
+ 410244.78 .3164279 .0110089
+ 410280.84 .3139841 .0108541
+ 410316.91 .3147932 .0108199
+ 410353.03 .3017667 .0104142
+ 410389.09 .2995852 .0103305
+ 410425.19 .3159851 .0108930
+ 410461.25 .3163645 .0108832
+ 410497.41 .3125584 .0109027
+ 410533.50 .3115707 .0110430
+ 410569.59 .3088112 .0110746
+ 410605.75 .3047864 .0108424
+ 410641.88 .3037772 .0112842
+ 410677.97 .3098823 .0112722
+ 410714.09 .3196718 .0116606
+ 410750.25 .3016712 .0110049
+ 410786.38 .2951602 .0110120
+ 410822.50 .3203034 .0116927
+ 410858.72 .3273464 .0117651
+ 410894.84 .2946307 .0106455
+ 410931.00 .3113495 .0109623
+ 410967.12 .2892908 .0103808
+ 411003.34 .2947583 .0103290
+ 411039.50 .3147056 .0108039
+ 411075.66 .3025979 .0104437
+ 411111.91 .3103846 .0107755
+ 411148.06 .3154376 .0106476
+ 411184.25 .3210344 .0107318
+ 411220.44 .3111241 .0105873
+ 411256.69 .3146479 .0105234
+ 411292.88 .3098001 .0105187
+ 411329.06 .3159684 .0107808
+ 411365.31 .2944638 .0102835
+ 411401.53 .3124371 .0108251
+ 411437.75 .3079857 .0106907
+ 411474.03 .2942027 .0104260
+ 411510.25 .2978755 .0104225
+ 411546.47 .3117127 .0107041
+ 411582.69 .3240328 .0111553
+ 411619.00 .3077068 .0104081
+ 411655.22 .3175928 .0106121
+ 411691.47 .3155918 .0105951
+ 411727.78 .3200225 .0107308
+ 411764.03 .3071122 .0105682
+ 411800.28 .3070122 .0105397
+ 411836.53 .3168978 .0110891
+ 411872.88 .3027550 .0107446
+ 411909.16 .2929280 .0105510
+ 411945.44 .3007288 .0109744
+ 411981.78 .2948274 .0107902
+ 412018.06 .3014764 .0110305
+ 412054.34 .3082150 .0111104
+ 412090.66 .2943168 .0107829
+ 412127.00 .2995865 .0106890
+ 412163.31 .3005606 .0109052
+ 412199.62 .3100614 .0111038
+ 412236.00 .2965869 .0104723
+ 412272.31 .3093658 .0108587
+ 412308.66 .2821793 .0100807
+ 412344.97 .2713671 .0098179
+ 412381.38 .2989773 .0107361
+ 412417.72 .2976751 .0109361
+ 412454.06 .3146627 .0115411
+ 412490.47 .2921258 .0108703
+ 412526.81 .3154907 .0118219
+ 412563.19 .3027278 .0114807
+ 412599.53 .2844991 .0109149
+ 412635.97 .2955164 .0111835
+ 412672.34 .2981263 .0111103
+ 412708.72 .2873641 .0107794
+ 412745.16 .2966938 .0109530
+ 412781.56 .2884858 .0105963
+ 412817.94 .2952602 .0107609
+ 412854.34 .2994327 .0109529
+ 412890.81 .3240106 .0116050
+ 412927.22 .2894263 .0104678
+ 412963.62 .2961581 .0106408
+ 413000.09 .2996274 .0107679
+ 413036.53 .2873178 .0104525
+ 413072.94 .3062763 .0109591
+ 413109.38 .2866908 .0104122
+ 413145.88 .3121567 .0110855
+ 413182.31 .2933102 .0104903
+ 413218.75 .2977042 .0104665
+ 413255.28 .2700723 .0095043
+ 413291.72 .2834921 .0098874
+ 413328.19 .2886980 .0099100
+ 413364.66 .2867956 .0098849
+ 413401.19 .2968100 .0102960
+ 413437.66 .2928876 .0104373
+ 413474.12 .2859886 .0100132
+ 413510.69 .2795877 .0098971
+ 413547.19 .2871351 .0099501
+ 413583.66 .2950784 .0102670
+ 413620.16 .3078677 .0106986
+ 413656.72 .2712495 .0095120
+ 413693.25 .2910652 .0102582
+ 413729.75 .3028071 .0106113
+ 413766.34 .2894870 .0103756
+ 413802.84 .3012655 .0108136
+ 413839.38 .2874098 .0103201
+ 413875.97 .3053112 .0110303
+ 413912.50 .2936963 .0108144
+ 413949.06 .2994068 .0108375
+ 413985.59 .2985353 .0108858
+ 414022.22 .3118715 .0111891
+ 414058.78 .2738303 .0101171
+ 414095.34 .2840653 .0103382
+ 414131.97 .2955463 .0104251
+ 414168.53 .3089679 .0108817
+ 414205.09 .2984358 .0103908
+ 414241.69 .2797026 .0098068
+ 414278.34 .2915329 .0101520
+ 414314.94 .2872369 .0099823
+ 414351.53 .2964333 .0101012
+ 414388.19 .2907799 .0099269
+ 414424.78 .3022105 .0102102
+ 414461.41 .2995934 .0100468
+ 414498.00 .2949826 .0098740
+ 414534.69 .2981213 .0101410
+ 414571.31 .2947635 .0101447
+ 414607.94 .2819951 .0098470
+ 414644.66 .2981841 .0101203
+ 414681.28 .3016215 .0102255
+ 414717.94 .2965343 .0102158
+ 414754.56 .3117241 .0107961
+ 414791.28 .3076816 .0106199
+ 414827.94 .3121308 .0106636
+ 414864.62 .3033492 .0104575
+ 414901.34 .2935778 .0101695
+ 414938.03 .3160600 .0107884
+ 414974.69 .3059051 .0107123
+ 415011.38 .2883853 .0100328
+ 415048.12 .3101408 .0106449
+ 415084.81 .3038467 .0107809
+ 415121.53 .2852294 .0101636
+ 415158.28 .2940939 .0104741
+ 415195.00 .3104436 .0111855
+ 415231.69 .2861714 .0103041
+ 415268.41 .3284909 .0115720
+ 415305.22 .3139582 .0110388
+ 415341.94 .2979111 .0104707
+ 415378.66 .3063947 .0105969
+ 415415.47 .3194234 .0108987
+ 415452.19 .2975203 .0103329
+ 415488.94 .3012711 .0104229
+ 415525.69 .3091628 .0107301
+ 415562.53 .3035681 .0104992
+ 415599.28 .3031518 .0105072
+ 415636.03 .3083407 .0105685
+ 415672.88 .3108822 .0105696
+ 415709.66 .3112763 .0105142
+ 415746.44 .2979300 .0102638
+ 415783.22 .2844339 .0097593
+ 415820.06 .2976899 .0101472
+ 415856.88 .2953133 .0100878
+ 415893.66 .3096328 .0107113
+ 415930.53 .3029609 .0104419
+ 415967.34 .3024061 .0105991
+ 416004.16 .3049505 .0108088
+ 416041.03 .2954962 .0107051
+ 416077.88 .3044387 .0113231
+ 416114.69 .3077619 .0113853
+ 416151.53 .2985409 .0112162
+ 416188.44 .3092229 .0114846
+ 416225.28 .3139324 .0116426
+ 416262.12 .3268710 .0120845
+ 416299.03 .3055608 .0110836
+ 416335.91 .3220356 .0116769
+ 416372.75 .3124182 .0111607
+ 416409.62 .3044972 .0108528
+ 416446.56 .3015403 .0107075
+ 416483.44 .3006825 .0109868
+ 416520.31 .3069995 .0110171
+ 416557.28 .3186861 .0114522
+ 416594.16 .3181083 .0113570
+ 416631.06 .3196051 .0114292
+ 416667.97 .3038578 .0110401
+ 416704.94 .3100073 .0110783
+ 416741.84 .3197086 .0116621
+ 416778.75 .3197143 .0112947
+ 416815.75 .3151999 .0112492
+ 416852.69 .3062433 .0108267
+ 416889.59 .3169343 .0111840
+ 416926.53 .2936536 .0103473
+ 416963.56 .3095993 .0107946
+ 417000.50 .2947682 .0105600
+ 417037.44 .3344729 .0115709
+ 417074.47 .3106518 .0107568
+ 417111.44 .3056598 .0108248
+ 417148.41 .3011528 .0107451
+ 417185.38 .3204540 .0112891
+ 417222.41 .3005066 .0108698
+ 417259.38 .3294567 .0116817
+ 417296.38 .3189529 .0111470
+ 417333.44 .3161380 .0112329
+ 417370.44 .3188703 .0111745
+ 417407.44 .3205546 .0110610
+ 417444.44 .3018854 .0106732
+ 417481.50 .3306715 .0114290
+ 417518.53 .3070606 .0107726
+ 417555.53 .3200319 .0110229
+ 417592.62 .3264835 .0113368
+ 417629.66 .3029026 .0105514
+ 417666.69 .3214894 .0110777
+ 417703.72 .3209263 .0110718
+ 417740.84 .2892815 .0101307
+ 417777.91 .3091418 .0107081
+ 417814.94 .2984544 .0102248
+ 417852.06 .2910818 .0101011
+ 417889.12 .3243503 .0111553
+ 417926.22 .3203640 .0110069
+ 417963.28 .3023842 .0106500
+ 418000.44 .3243078 .0115510
+ 418037.50 .3261624 .0116004
+ 418074.59 .3150741 .0112532
+ 418111.75 .3157161 .0112941
+ 418148.84 .2906479 .0104419
+ 418185.97 .3286024 .0116181
+ 418223.12 .2991709 .0108228
+ 418260.25 .3316304 .0118010
+ 418297.38 .3164625 .0112834
+ 418334.50 .3161213 .0115684
+ 418371.69 .3091360 .0112695
+ 418408.81 .3154134 .0114636
+ 418445.97 .3080281 .0113360
+ 418483.16 .2953031 .0108637
+ 418520.31 .3235930 .0115683
+ 418557.47 .3117214 .0110042
+ 418594.62 .3153588 .0112188
+ 418631.84 .2865714 .0101374
+ 418669.03 .3171251 .0110720
+ 418706.19 .3259647 .0112549
+ 418743.44 .3000070 .0105782
+ 418780.62 .3088419 .0109342
+ 418817.81 .3217378 .0112084
+ 418855.00 .3149940 .0108738
+ 418892.28 .3112608 .0108927
+ 418929.47 .3137538 .0107655
+ 418966.69 .3309681 .0114805
+ 419003.97 .3162573 .0110061
+ 419041.19 .3318608 .0115038
+ 419078.41 .3277802 .0113460
+ 419115.62 .3136555 .0108406
+ 419152.94 .3108551 .0108761
+ 419190.16 .3147954 .0109984
+ 419227.41 .3039230 .0106483
+ 419264.72 .3044497 .0106017
+ 419301.97 .3267940 .0112371
+ 419339.22 .3109684 .0109332
+ 419376.47 .3529295 .0119626
+ 419413.81 .3080972 .0107036
+ 419451.09 .3104503 .0107485
+ 419488.38 .3093835 .0107263
+ 419525.72 .3227523 .0113979
+ 419563.00 .3285162 .0113979
+ 419600.28 .3220072 .0115540
+ 419637.59 .3304332 .0120358
+ 419674.97 .2915117 .0106489
+ 419712.28 .2998380 .0108697
+ 419749.59 .3196931 .0112396
+ 419786.97 .3197556 .0112737
+ 419824.28 .3005172 .0109032
+ 419861.62 .2985922 .0106296
+ 419898.94 .3260050 .0115239
+ 419936.34 .3387852 .0117293
+ 419973.69 .3142678 .0112381
+ 420011.03 .3268337 .0113162
+ 420048.47 .3162649 .0112015
+ 420085.81 .3249183 .0114512
+ 420123.19 .3139887 .0108965
+ 420160.53 .3177910 .0111257
+ 420197.97 .3159759 .0108177
+ 420235.34 .3261002 .0110921
+ 420272.75 .3058508 .0105666
+ 420310.19 .3177404 .0107947
+ 420347.59 .3089886 .0106851
+ 420384.97 .3317553 .0114124
+ 420422.38 .3047154 .0104514
+ 420459.84 .3257488 .0111027
+ 420497.28 .3218491 .0109835
+ 420534.69 .3188924 .0109600
+ 420572.19 .3218630 .0109676
+ 420609.59 .3082747 .0105537
+ 420647.03 .3163492 .0108534
+ 420684.53 .3131831 .0106935
+ 420721.97 .3136703 .0108035
+ 420759.41 .3105844 .0105260
+ 420796.88 .3053500 .0105837
+ 420834.41 .2999850 .0102661
+ 420871.84 .3254448 .0113559
+ 420909.31 .3314577 .0113534
+ 420946.88 .3237332 .0113034
+ 420984.34 .3254768 .0111459
+ 421021.81 .3121060 .0107156
+ 421059.31 .3035134 .0104518
+ 421096.88 .3088500 .0105404
+ 421134.38 .3178133 .0108957
+ 421171.88 .3177499 .0109897
+ 421209.44 .3089449 .0106501
+ 421246.94 .3131776 .0106012
+ 421284.47 .3197804 .0109917
+ 421322.00 .3165028 .0109774
+ 421359.59 .3171565 .0109571
+ 421397.12 .3046109 .0106336
+ 421434.66 .3186335 .0110599
+ 421472.25 .3091691 .0107684
+ 421509.81 .3206544 .0110778
+ 421547.38 .3316450 .0111263
+ 421584.91 .3021134 .0104240
+ 421622.56 .3282844 .0112170
+ 421660.12 .3155327 .0106670
+ 421697.69 .3153077 .0108404
+ 421735.34 .3266935 .0111781
+ 421772.91 .3004578 .0107980
+ 421810.50 .3210250 .0111487
+ 421848.09 .3187402 .0112362
+ 421885.75 .3158816 .0113768
+ 421923.34 .2911743 .0104728
+ 421960.97 .3320623 .0117435
+ 421998.66 .3426033 .0118811
+ 422036.25 .3175069 .0109671
+ 422073.88 .3202333 .0110820
+ 422111.50 .3208867 .0112263
+ 422149.22 .3255708 .0112733
+ 422186.84 .2984363 .0103206
+ 422224.50 .3118763 .0106941
+ 422262.22 .3229934 .0112160
+ 422299.84 .3116496 .0106161
+ 422337.50 .3238784 .0110566
+ 422375.19 .3264146 .0112559
+ 422412.91 .3134407 .0106675
+ 422450.59 .3174794 .0106928
+ 422488.25 .3188227 .0106410
+ 422526.00 .3058578 .0104891
+ 422563.69 .3102415 .0105045
+ 422601.41 .3176816 .0109404
+ 422639.09 .2999703 .0105079
+ 422676.88 .3112327 .0111341
+ 422714.56 .3224137 .0112891
+ 422752.28 .3286248 .0115317
+ 422790.06 .3223677 .0114232
+ 422827.78 .3308429 .0115241
+ 422865.53 .3128684 .0107794
+ 422903.31 .3059914 .0105311
+ 422941.06 .3151023 .0108488
+ 422978.81 .3076392 .0104841
+ 423016.56 .3187096 .0106596
+ 423054.38 .3319017 .0110967
+ 423092.12 .3135055 .0106620
+ 423129.91 .3211322 .0108654
+ 423167.72 .3244247 .0111540
+ 423205.50 .3258647 .0109812
+ 423243.28 .3064048 .0105600
+ 423281.06 .3091777 .0108420
+ 423318.94 .3120104 .0107572
+ 423356.72 .3114158 .0107961
+ 423394.50 .3098152 .0108638
+ 423432.38 .3393913 .0120933
+ 423470.19 .3042358 .0108645
+ 423508.00 .3234009 .0112941
+ 423545.84 .3049748 .0109925
+ 423583.72 .3206539 .0111077
+ 423621.56 .3363093 .0114557
+ 423659.38 .3133164 .0106465
+ 423697.28 .3165781 .0107443
+ 423735.12 .3223232 .0108449
+ 423773.00 .3221484 .0108499
+ 423810.84 .3339634 .0115194
+ 423848.78 .3391616 .0118074
+ 423886.62 .3228206 .0113688
+ 423924.50 .3005097 .0110476
+ 423962.44 .2975760 .0108928
+ 424000.34 .3157547 .0115176
+ 424038.22 .3206490 .0116030
+ 424076.09 .3269957 .0118484
+ 424114.06 .3061547 .0112206
+ 424151.97 .3295629 .0117618
+ 424189.88 .3225977 .0113100
+ 424227.84 .3295344 .0110587
+ 424265.78 .3082862 .0104979
+ 424303.69 .3114959 .0105188
+ 424341.62 .3148074 .0107260
+ 424379.62 .3113393 .0104584
+ 424417.56 .3280691 .0110970
+ 424455.50 .3234483 .0109738
+ 424493.50 .3043995 .0106292
+ 424531.47 .3259208 .0112530
+ 424569.41 .3095311 .0107703
+ 424607.38 .3380324 .0116984
+ 424645.41 .3063713 .0111419
+ 424683.38 .3359280 .0117926
+ 424721.34 .3089924 .0111430
+ 424759.41 .3394324 .0121193
+ 424797.41 .3000910 .0109326
+ 424835.38 .3087738 .0108957
+ 424873.38 .3271315 .0115292
+ 424911.47 .3249787 .0113678
+ 424949.47 .3067484 .0108697
+ 424987.47 .3357314 .0115089
+ 425025.56 .3321632 .0114592
+ 425063.59 .3513246 .0118725
+ 425101.62 .3234963 .0110745
+ 425139.66 .3189023 .0107451
+ 425177.75 .3325656 .0112600
+ 425215.78 .3123609 .0104870
+ 425253.84 .3245651 .0110800
+ 425291.97 .3155955 .0107212
+ 425330.03 .3338614 .0112019
+ 425368.09 .3123994 .0106621
+ 425406.22 .3441470 .0116065
+ 425444.31 .3188360 .0111201
+ 425482.38 .2994853 .0103834
+ 425520.47 .3290950 .0114790
+ 425558.62 .3409379 .0119819
+ 425596.72 .3117504 .0110820
+ 425634.81 .3097802 .0109283
+ 425673.00 .3362883 .0116939
+ 425711.09 .3051826 .0109638
+ 425749.22 .3112357 .0109840
+ 425787.31 .3112781 .0109947
+ 425825.53 .3161665 .0112110
+ 425863.66 .3129062 .0110352
+ 425901.78 .3101754 .0109446
+ 425940.00 .3166358 .0109402
+ 425978.16 .3197358 .0109856
+ 426016.28 .3065244 .0108783
+ 426054.44 .3139897 .0108330
+ 426092.69 .3280180 .0113253
+ 426130.84 .3271033 .0112283
+ 426169.00 .3249678 .0110466
+ 426207.25 .3172665 .0108325
+ 426245.44 .3164040 .0107214
+ 426283.62 .3279496 .0111004
+ 426321.81 .3160485 .0106284
+ 426360.09 .3094684 .0105171
+ 426398.28 .3167558 .0107514
+ 426436.50 .3145102 .0108082
+ 426474.78 .3314733 .0112824
+ 426513.00 .3019277 .0106051
+ 426551.22 .3227826 .0110457
+ 426589.44 .3147409 .0109057
+ 426627.75 .3281191 .0113772
+ 426665.97 .3143610 .0108229
+ 426704.22 .2882349 .0101421
+ 426742.53 .3295990 .0111376
+ 426780.81 .3063228 .0105608
+ 426819.06 .3205297 .0108454
+ 426857.31 .3065798 .0106042
+ 426895.66 .3298358 .0113005
+ 426933.94 .3209077 .0110497
+ 426972.22 .3155666 .0110386
+ 427010.56 .2943837 .0103177
+ 427048.84 .3357454 .0114583
+ 427087.16 .2974024 .0103074
+ 427125.44 .3318155 .0113045
+ 427163.81 .3377306 .0115213
+ 427202.12 .3180602 .0106302
+ 427240.44 .3124193 .0106750
+ 427278.84 .3172977 .0108215
+ 427317.16 .3060357 .0104800
+ 427355.50 .3198635 .0108956
+ 427393.81 .3150670 .0106406
+ 427432.25 .3234909 .0107510
+ 427470.59 .3240862 .0110940
+ 427508.94 .3148212 .0106983
+ 427547.38 .3299721 .0109855
+ 427585.72 .3140167 .0107513
+ 427624.09 .3393164 .0113214
+ 427662.53 .3223322 .0109333
+ 427700.91 .3135028 .0107552
+ 427739.28 .3236781 .0106529
+ 427777.69 .3260542 .0108822
+ 427816.12 .3164901 .0108300
+ 427854.53 .3180667 .0107715
+ 427892.94 .3171685 .0108614
+ 427931.41 .3184119 .0110037
+ 427969.84 .3323314 .0115406
+ 428008.25 .3090622 .0108112
+ 428046.66 .3125609 .0110703
+ 428085.19 .3206629 .0112930
+ 428123.59 .3366650 .0119404
+ 428162.03 .3026580 .0107181
+ 428200.56 .3284813 .0114582
+ 428239.00 .2838495 .0100508
+ 428277.47 .3108873 .0108556
+ 428315.91 .3274322 .0113579
+ 428354.47 .3054944 .0104543
+ 428392.94 .3174685 .0108611
+ 428431.41 .3223010 .0111359
+ 428469.97 .3300374 .0113857
+ 428508.44 .3217639 .0111355
+ 428546.94 .3320400 .0114671
+ 428585.44 .3038533 .0107015
+ 428624.00 .3216523 .0113567
+ 428662.50 .3131756 .0110597
+ 428701.00 .3187023 .0109606
+ 428739.59 .3031985 .0104106
+ 428778.12 .3326050 .0113362
+ 428816.66 .3163943 .0108592
+ 428855.19 .3354137 .0113325
+ 428893.78 .3217547 .0107832
+ 428932.34 .3170650 .0106607
+ 428970.88 .3177299 .0105943
+ 429009.50 .3122585 .0106483
+ 429048.06 .3286304 .0109213
+ 429086.62 .3107489 .0103442
+ 429125.19 .3087738 .0104894
+ 429163.84 .3339281 .0112085
+ 429202.41 .3177550 .0109433
+ 429241.00 .3041771 .0106286
+ 429279.66 .3215114 .0112920
+ 429318.25 .3250366 .0112645
+ 429356.84 .2961510 .0102650
+ 429395.47 .3175983 .0111530
+ 429434.16 .3306620 .0112623
+ 429472.75 .3382221 .0116097
+ 429511.38 .3192907 .0107407
+ 429550.09 .3237370 .0110966
+ 429588.72 .3200343 .0108417
+ 429627.34 .3244885 .0110479
+ 429666.00 .3079628 .0104730
+ 429704.72 .3357936 .0111827
+ 429743.34 .3138145 .0106502
+ 429782.00 .3402707 .0111910
+ 429820.75 .3292180 .0109096
+ 429859.41 .3014653 .0101124
+ 429898.09 .3241902 .0107630
+ 429936.84 .3374643 .0112643
+ 429975.53 .3298050 .0108679
+ 430014.22 .3287449 .0109723
+ 430052.91 .3515532 .0115491
+ 430091.69 .3307053 .0111491
+ 430130.38 .3313411 .0109810
+ 430169.09 .3020796 .0101140
+ 430207.88 .3209148 .0107462
+ 430246.59 .3405753 .0112919
+ 430285.31 .2991184 .0101842
+ 430324.06 .3202512 .0109234
+ 430362.84 .3232292 .0109407
+ 430401.59 .3369732 .0114278
+ 430440.34 .3204882 .0113129
+ 430479.16 .3479381 .0119122
+ 430517.94 .3323932 .0117900
+ 430556.69 .3415786 .0119665
+ 430595.44 .3306226 .0115507
+ 430634.28 .3074272 .0109067
+ 430673.06 .3261010 .0116023
+ 430711.84 .3061251 .0109663
+ 430750.72 .3155531 .0111763
+ 430789.50 .3286898 .0116261
+ 430828.31 .3225961 .0112389
+ 430867.12 .3303933 .0114833
+ 430906.00 .3294069 .0110775
+ 430944.81 .3283693 .0112161
+ 430983.62 .3351713 .0114776
+ 431022.53 .3054419 .0105252
+ 431061.34 .3480918 .0118234
+ 431100.19 .3179829 .0109567
+ 431139.03 .3171458 .0106483
+ 431177.94 .3225122 .0109811
+ 431216.78 .3185289 .0108585
+ 431255.66 .3301769 .0113697
+ 431294.59 .3515728 .0118824
+ 431333.44 .3381079 .0114900
+ 431372.31 .3157130 .0110010
+ 431411.19 .3182747 .0112122
+ 431450.16 .3362339 .0117050
+ 431489.03 .3282564 .0112833
+ 431527.94 .3169273 .0108972
+ 431566.91 .3227496 .0112321
+ 431605.81 .3176593 .0110675
+ 431644.72 .3240556 .0113297
+ 431683.62 .3163923 .0112663
+ 431722.62 .3055158 .0110814
+ 431761.56 .3235168 .0116126
+ 431800.47 .3269415 .0117137
+ 431839.50 .3064152 .0111388
+ 431878.44 .3179740 .0115038
+ 431917.38 .3200549 .0114572
+ 431956.31 .3353994 .0117568
+ 431995.34 .3428136 .0119531
+ 432034.31 .3245955 .0115439
+ 432073.28 .3163510 .0112369
+ 432112.31 .3314060 .0117488
+ 432151.31 .3425055 .0118724
+ 432190.28 .3193451 .0109823
+ 432229.28 .3193530 .0111280
+ 432268.34 .3296838 .0115481
+ 432307.34 .3379523 .0116553
+ 432346.34 .3106538 .0109956
+ 432385.41 .3308866 .0115346
+ 432424.44 .3396574 .0119332
+ 432463.44 .3145961 .0110294
+ 432502.56 .3275329 .0111410
+ 432541.59 .3047669 .0105020
+ 432580.62 .3317569 .0112276
+ 432619.66 .3504858 .0118304
+ 432658.78 .3354643 .0114980
+ 432697.81 .3366072 .0116445
+ 432736.88 .3308631 .0116332
+ 432776.03 .3378398 .0118625
+ 432815.09 .3312781 .0116642
+ 432854.16 .3213881 .0115660
+ 432893.22 .3309908 .0116202
+ 432932.38 .3194363 .0112557
+ 432971.47 .3254319 .0115978
+ 433010.56 .3356192 .0119538
+ 433049.75 .3264731 .0116037
+ 433088.84 .2986137 .0107572
+ 433127.97 .3441944 .0122956
+ 433167.06 .3218009 .0115164
+ 433206.25 .3249555 .0118615
+ 433245.38 .3278619 .0118011
+ 433284.53 .3223575 .0116216
+ 433323.72 .3266015 .0117042
+ 433362.88 .3282474 .0116779
+ 433402.00 .3496020 .0123572
+ 433441.16 .3332881 .0119428
+ 433480.41 .3332182 .0119496
+ 433519.56 .3191608 .0114055
+ 433558.72 .3512883 .0122522
+ 433597.97 .3326403 .0114395
+ 433637.16 .3365868 .0117059
+ 433676.34 .3370197 .0117372
+ 433715.53 .3261396 .0113488
+ 433754.78 .3113965 .0108893
+ 433794.00 .3438338 .0117203
+ 433833.19 .3381236 .0116579
+ 433872.47 .3236508 .0113309
+ 433911.69 .3445510 .0121320
+ 433950.91 .3281794 .0118589
+ 433990.16 .3337277 .0119273
+ 434029.44 .3392653 .0119920
+ 434068.69 .3281528 .0117599
+ 434107.94 .3356769 .0119036
+ 434147.25 .3371766 .0119142
+ 434186.50 .3201410 .0114466
+ 434225.75 .3212610 .0111365
+ 434265.03 .3333066 .0114193
+ 434304.38 .3193369 .0108380
+ 434343.62 .3545262 .0117683
+ 434382.91 .3580092 .0119798
+ 434422.28 .3376494 .0113357
+ 434461.56 .3412664 .0115370
+ 434500.88 .3215152 .0110489
+ 434540.16 .3264617 .0112834
+ 434579.53 .3210348 .0110002
+ 434618.84 .3161441 .0111420
+ 434658.16 .3365499 .0116465
+ 434697.56 .3378616 .0117269
+ 434736.91 .3081011 .0107933
+ 434776.22 .3328592 .0115091
+ 434815.62 .3194715 .0112123
+ 434854.97 .3057968 .0107771
+ 434894.34 .3266162 .0113639
+ 434933.69 .3210180 .0113393
+ 434973.12 .3216264 .0111298
+ 435012.47 .3167279 .0109268
+ 435051.84 .3127533 .0107127
+ 435091.31 .3174066 .0111317
+ 435130.69 .3308423 .0113495
+ 435170.06 .3257162 .0111637
+ 435209.47 .3300298 .0113209
+ 435248.94 .3363375 .0114189
+ 435288.34 .3380657 .0115304
+ 435327.75 .3146595 .0107402
+ 435367.22 .3105648 .0104974
+ 435406.66 .3372383 .0115013
+ 435446.06 .3337648 .0112139
+ 435485.50 .3281424 .0109996
+ 435525.00 .3363646 .0110772
+ 435564.44 .3525161 .0116972
+ 435603.91 .3256380 .0109840
+ 435643.41 .3318047 .0114968
+ 435682.88 .3312990 .0112961
+ 435722.34 .3243803 .0112246
+ 435761.81 .3391309 .0115521
+ 435801.34 .3129548 .0106679
+ 435840.81 .3365877 .0114415
+ 435880.31 .3224030 .0108836
+ 435919.88 .3209187 .0110247
+ 435959.38 .3271969 .0110258
+ 435998.88 .3219419 .0107516
+ 436038.38 .3298924 .0109978
+ 436077.94 .3395087 .0114834
+ 436117.47 .3120293 .0104623
+ 436156.97 .3105301 .0105952
+ 436196.59 .3421336 .0114526
+ 436236.12 .3257520 .0109566
+ 436275.66 .3276921 .0108576
+ 436315.19 .3348704 .0112336
+ 436354.81 .3359924 .0112660
+ 436394.38 .3147604 .0107239
+ 436433.94 .3273383 .0109560
+ 436473.56 .3318629 .0112031
+ 436513.12 .3223304 .0108569
+ 436552.72 .3111062 .0107371
+ 436592.28 .3144847 .0106449
+ 436631.94 .3290836 .0109972
+ 436671.53 .3256343 .0106582
+ 436711.12 .3293127 .0108562
+ 436750.81 .3295597 .0109076
+ 436790.41 .3368827 .0111511
+ 436830.03 .3145818 .0106016
+ 436869.62 .3219428 .0108614
+ 436909.34 .3150835 .0106214
+ 436948.97 .3380792 .0114428
+ 436988.59 .3201801 .0108756
+ 437028.31 .3061783 .0103395
+ 437067.97 .3263767 .0107163
+ 437107.59 .3250995 .0108060
+ 437147.25 .3294770 .0108251
+ 437187.00 .3243453 .0105904
+ 437226.66 .3279956 .0106187
+ 437266.34 .3153448 .0101629
+ 437306.09 .3271497 .0104919
+ 437345.78 .3308169 .0106411
+ 437385.44 .3253657 .0104143
+ 437425.22 .3300211 .0107942
+ 437464.91 .3244815 .0105524
+ 437504.62 .3360256 .0108894
+ 437544.34 .3394327 .0107615
+ 437584.12 .3320753 .0109674
+ 437623.84 .3255542 .0107554
+ 437663.56 .3382295 .0111421
+ 437703.38 .3315696 .0109783
+ 437743.09 .3226621 .0107298
+ 437782.84 .3187128 .0105160
+ 437822.59 .3296407 .0106317
+ 437862.44 .3098361 .0102421
+ 437902.19 .3436804 .0113159
+ 437941.94 .3282789 .0108349
+ 437981.78 .3222577 .0105794
+ 438021.56 .3319021 .0111123
+ 438061.34 .3282177 .0109906
+ 438101.12 .3252449 .0109965
+ 438141.00 .3189124 .0107022
+ 438180.78 .3480088 .0116283
+ 438220.59 .3477015 .0116611
+ 438260.47 .3221480 .0108855
+ 438300.28 .3560222 .0119008
+ 438340.09 .3394503 .0110836
+ 438379.91 .3460324 .0110445
+ 438419.81 .3326518 .0106477
+ 438459.66 .3379379 .0109263
+ 438499.50 .3098824 .0101183
+ 438539.41 .3155739 .0103654
+ 438579.25 .3253806 .0107941
+ 438619.12 .3383647 .0113276
+ 438658.97 .3106950 .0104520
+ 438698.94 .3497874 .0116460
+ 438738.78 .3244694 .0110925
+ 438778.66 .3200500 .0110742
+ 438818.62 .3351744 .0112982
+ 438858.53 .3405939 .0114524
+ 438898.41 .3382959 .0112810
+ 438938.31 .3445751 .0113818
+ 438978.28 .3283660 .0109417
+ 439018.19 .3203433 .0107119
+ 439058.12 .3188793 .0104819
+ 439098.12 .3353056 .0109983
+ 439138.03 .3376792 .0109783
+ 439177.97 .3348308 .0108221
+ 439217.91 .3520533 .0113306
+ 439257.94 .3435591 .0110830
+ 439297.88 .3252653 .0105218
+ 439337.81 .3380426 .0109195
+ 439377.84 .3187353 .0103190
+ 439417.81 .3220544 .0104560
+ 439457.78 .3185802 .0103945
+ 439497.78 .3337637 .0109837
+ 439537.81 .3150414 .0104217
+ 439577.81 .3249418 .0110209
+ 439617.81 .3277756 .0114513
+ 439657.88 .3364322 .0114900
+ 439697.88 .3288904 .0112918
+ 439737.88 .3289751 .0111615
+ 439777.97 .3151564 .0108050
+ 439818.00 .3275967 .0110577
+ 439858.03 .3362283 .0110491
+ 439898.03 .3171377 .0104330
+ 439938.16 .3469717 .0113899
+ 439978.19 .3245507 .0106827
+ 440018.25 .3233698 .0107118
+ 440058.38 .3385059 .0111375
+ 440098.44 .3422720 .0110958
+ 440138.50 .3520166 .0115398
+ 440178.56 .3343762 .0108772
+ 440218.72 .3251222 .0108882
+ 440258.78 .3265425 .0107712
+ 440298.88 .3190995 .0106746
+ 440339.03 .3243023 .0108520
+ 440379.12 .3413265 .0112089
+ 440419.25 .3530811 .0114854
+ 440459.34 .3342043 .0112112
+ 440499.53 .3338892 .0109397
+ 440539.66 .3315282 .0108338
+ 440579.78 .3279091 .0106475
+ 440619.97 .3280842 .0107305
+ 440660.09 .3228556 .0105804
+ 440700.25 .3564589 .0115740
+ 440740.41 .3230636 .0105994
+ 440780.62 .3316461 .0107980
+ 440820.78 .3402503 .0111106
+ 440860.94 .3295927 .0110015
+ 440901.19 .3104108 .0102134
+ 440941.34 .3548156 .0114584
+ 440981.53 .3188473 .0106493
+ 441021.72 .3247375 .0107803
+ 441061.97 .3248340 .0108769
+ 441102.16 .3270317 .0108204
+ 441142.38 .3291547 .0109223
+ 441182.66 .3254567 .0108818
+ 441222.88 .3287405 .0109486
+ 441263.09 .3501781 .0115893
+ 441303.31 .3255534 .0107104
+ 441343.59 .3087268 .0102394
+ 441383.84 .3272241 .0109124
+ 441424.06 .3459375 .0112626
+ 441464.41 .3239203 .0104356
+ 441504.66 .3214400 .0103938
+ 441544.91 .3175213 .0102625
+ 441585.16 .3405762 .0109264
+ 441625.50 .3328215 .0107455
+ 441665.78 .3244440 .0104173
+ 441706.06 .3402243 .0108290
+ 441746.41 .3351693 .0107079
+ 441786.69 .3224679 .0103052
+ 441827.00 .2978132 .0098782
+ 441867.28 .3414010 .0110955
+ 441907.66 .3209431 .0104384
+ 441947.97 .3192926 .0105719
+ 441988.28 .3330779 .0108713
+ 442028.69 .3029553 .0100923
+ 442069.03 .3325140 .0107804
+ 442109.34 .3294874 .0107479
+ 442149.75 .3296014 .0106160
+ 442190.09 .3394285 .0108970
+ 442230.47 .3516468 .0113334
+ 442270.81 .3403948 .0109947
+ 442311.25 .3305458 .0110311
+ 442351.62 .3416061 .0113203
+ 442391.97 .3307287 .0109723
+ 442432.44 .3472518 .0116432
+ 442472.81 .3342369 .0111805
+ 442513.22 .3570822 .0118406
+ 442553.59 .3400505 .0115890
+ 442594.06 .3430946 .0115560
+ 442634.47 .3320825 .0111272
+ 442674.88 .3239694 .0108389
+ 442715.38 .3145040 .0107055
+ 442755.81 .3300295 .0110148
+ 442796.22 .3141182 .0104118
+ 442836.66 .3372613 .0108538
+ 442877.16 .3379226 .0111072
+ 442917.62 .3385862 .0112060
+ 442958.06 .3249063 .0107679
+ 442998.59 .3162914 .0105912
+ 443039.06 .3326553 .0109747
+ 443079.50 .3165319 .0106394
+ 443120.00 .3333170 .0108694
+ 443160.53 .3365882 .0109584
+ 443201.03 .3279226 .0106733
+ 443241.50 .3224095 .0103922
+ 443282.06 .3266937 .0104608
+ 443322.56 .3298957 .0105713
+ 443363.06 .3385518 .0108251
+ 443403.59 .3263818 .0105963
+ 443444.19 .3487045 .0112102
+ 443484.69 .3183754 .0104116
+ 443525.22 .3385733 .0110720
+ 443565.84 .3338853 .0107968
+ 443606.38 .3335735 .0107920
+ 443646.91 .3475442 .0111913
+ 443687.47 .3556666 .0114135
+ 443728.09 .3462887 .0113100
+ 443768.66 .3277387 .0107913
+ 443809.22 .3528355 .0114872
+ 443849.88 .3380376 .0109337
+ 443890.44 .3344585 .0108258
+ 443931.03 .3480178 .0112978
+ 443971.59 .3236220 .0105952
+ 444012.28 .3491383 .0111512
+ 444052.88 .3441191 .0112412
+ 444093.47 .3452079 .0113714
+ 444134.16 .3493480 .0116005
+ 444174.78 .3184831 .0106350
+ 444215.41 .3197472 .0108703
+ 444256.03 .3241747 .0111392
+ 444296.75 .3537867 .0120397
+ 444337.38 .3247362 .0110085
+ 444378.03 .3386141 .0113941
+ 444418.75 .3386558 .0112713
+ 444459.41 .3332015 .0108466
+ 444500.06 .3521655 .0113093
+ 444540.72 .3216725 .0103229
+ 444581.47 .3205564 .0102740
+ 444622.16 .3385118 .0107474
+ 444662.81 .3158536 .0101580
+ 444703.59 .3414114 .0109616
+ 444744.28 .3370107 .0110080
+ 444785.00 .3617699 .0117753
+ 444825.78 .3249693 .0107250
+ 444866.47 .3195741 .0106932
+ 444907.19 .3425715 .0113073
+ 444947.91 .3164744 .0105411
+ 444988.72 .3384663 .0111245
+ 445029.44 .3324319 .0110195
+ 445070.19 .3176944 .0106041
+ 445111.00 .3389702 .0109984
+ 445151.75 .3417720 .0113150
+ 445192.50 .3390825 .0110954
+ 445233.28 .3262987 .0108605
+ 445274.12 .3295707 .0106644
+ 445314.88 .3304392 .0108585
+ 445355.66 .3403179 .0109845
+ 445396.53 .3398559 .0109274
+ 445437.31 .3201312 .0103475
+ 445478.09 .3378663 .0107575
+ 445518.91 .3265181 .0105271
+ 445559.78 .3324298 .0105944
+ 445600.59 .3120480 .0101135
+ 445641.41 .3271190 .0104665
+ 445682.31 .3466428 .0108312
+ 445723.16 .3583809 .0111858
+ 445763.97 .3542967 .0109850
+ 445804.81 .3399481 .0104978
+ 445845.75 .3435771 .0107841
+ 445886.59 .3319330 .0104087
+ 445927.44 .3489035 .0109216
+ 445968.38 .3263869 .0102395
+ 446009.25 .3447632 .0107256
+ 446050.12 .3405982 .0106869
+ 446091.00 .3366450 .0104436
+ 446131.97 .3308350 .0103423
+ 446172.84 .3255428 .0102051
+ 446213.75 .3460277 .0107267
+ 446254.72 .3325172 .0103496
+ 446295.62 .3338562 .0105967
+ 446336.53 .3350412 .0105904
+ 446377.47 .3117943 .0099817
+ 446418.47 .3243487 .0101836
+ 446459.38 .3433561 .0108196
+ 446500.31 .3334087 .0104798
+ 446541.34 .3273692 .0103083
+ 446582.28 .3345391 .0103382
+ 446623.25 .3377072 .0107515
+ 446664.19 .3408620 .0107300
+ 446705.25 .3328626 .0105359
+ 446746.22 .3459323 .0110265
+ 446787.19 .3202711 .0102026
+ 446828.25 .3319294 .0104579
+ 446869.22 .3407298 .0109499
+ 446910.22 .3429214 .0110405
+ 446951.22 .3390326 .0109535
+ 446992.28 .3459728 .0111970
+ 447033.28 .3166942 .0104970
+ 447074.31 .3366772 .0111584
+ 447115.41 .3390205 .0110930
+ 447156.44 .3364096 .0110598
+ 447197.47 .3404628 .0111337
+ 447238.56 .3246202 .0104971
+ 447279.62 .3346833 .0107453
+ 447320.66 .3364989 .0107475
+ 447361.72 .3401119 .0105611
+ 447402.84 .3384567 .0106506
+ 447443.91 .3118293 .0098395
+ 447485.00 .3296607 .0105658
+ 447526.16 .3339727 .0105808
+ 447567.22 .3444844 .0109129
+ 447608.31 .3391013 .0109525
+ 447649.41 .3345397 .0108615
+ 447690.59 .3483038 .0113613
+ 447731.69 .3445508 .0112920
+ 447772.78 .3289880 .0108359
+ 447814.00 .3294144 .0109866
+ 447855.09 .3321850 .0108332
+ 447896.22 .3168219 .0104134
+ 447937.38 .3366875 .0108320
+ 447978.59 .3375770 .0107397
+ 448019.72 .3355960 .0107729
+ 448060.88 .3217656 .0102619
+ 448102.09 .3369074 .0105143
+ 448143.28 .3314377 .0104198
+ 448184.44 .3269238 .0102755
+ 448225.59 .3336887 .0105000
+ 448266.88 .3389907 .0106240
+ 448308.03 .3374289 .0106124
+ 448349.25 .3492310 .0111440
+ 448390.50 .3189369 .0100738
+ 448431.72 .3195384 .0101785
+ 448472.91 .3343237 .0107991
+ 448514.12 .3336473 .0105652
+ 448555.41 .3328746 .0105566
+ 448596.66 .3494263 .0111372
+ 448637.88 .3461891 .0109424
+ 448679.19 .3191935 .0099526
+ 448720.44 .3074321 .0098020
+ 448761.69 .3377270 .0107281
+ 448802.94 .3220325 .0101626
+ 448844.25 .3382454 .0107270
+ 448885.53 .3140633 .0101970
+ 448926.78 .3430213 .0111354
+ 448968.16 .3349543 .0108483
+ 449009.44 .3538421 .0113476
+ 449050.72 .3424834 .0110058
+ 449092.00 .3471870 .0111057
+ 449133.38 .3493817 .0111144
+ 449174.69 .3604857 .0112604
+ 449216.00 .3276873 .0102264
+ 449257.38 .3439427 .0107182
+ 449298.69 .3216424 .0100582
+ 449340.03 .3356860 .0103549
+ 449381.34 .3350567 .0105013
+ 449422.78 .3326052 .0105229
+ 449464.12 .3191895 .0098814
+ 449505.47 .3554792 .0108735
+ 449546.91 .3400756 .0103873
+ 449588.25 .3262447 .0098995
+ 449629.62 .3435418 .0103522
+ 449671.00 .3367403 .0100873
+ 449712.44 .3511573 .0104413
+ 449753.84 .3619313 .0107578
+ 449795.22 .3365781 .0102521
+ 449836.69 .3384537 .0103409
+ 449878.09 .3305900 .0102631
+ 449919.50 .3305124 .0103465
+ 449961.00 .3265771 .0103216
+ 450002.41 .3430136 .0107899
+ 450043.84 .3533497 .0108564
+ 450085.25 .3405971 .0106472
+ 450126.78 .3373323 .0102462
+ 450168.22 .3341049 .0103919
+ 450209.66 .3392504 .0103881
+ 450251.19 .3136464 .0097225
+ 450292.66 .3442131 .0106185
+ 450334.09 .3231212 .0101446
+ 450375.56 .3324203 .0103845
+ 450417.12 .3469309 .0107728
+ 450458.59 .3425747 .0108413
+ 450500.09 .3557840 .0109710
+ 450541.66 .3525133 .0109324
+ 450583.16 .3401175 .0103949
+ 450624.66 .3605269 .0109464
+ 450666.19 .3319000 .0100960
+ 450707.78 .3605320 .0106938
+ 450749.28 .3290076 .0100042
+ 450790.81 .3439967 .0104676
+ 450832.44 .3438360 .0104587
+ 450873.97 .3478471 .0106406
+ 450915.50 .3410418 .0104747
+ 450957.06 .3526116 .0109262
+ 450998.69 .3401301 .0104261
+ 451040.25 .3281895 .0103420
+ 451081.81 .3288616 .0103505
+ 451123.47 .3289256 .0104865
+ 451165.03 .3254315 .0102203
+ 451206.62 .3555172 .0110035
+ 451248.22 .3484972 .0107463
+ 451289.88 .3097199 .0098158
+ 451331.50 .3213506 .0102970
+ 451373.09 .3479680 .0107430
+ 451414.78 .3276752 .0104362
+ 451456.41 .3450375 .0111429
+ 451498.03 .3401464 .0108923
+ 451539.66 .3412622 .0111533
+ 451581.38 .3247238 .0105902
+ 451623.00 .3232993 .0107013
+ 451664.66 .3410318 .0111369
+ 451706.41 .3467063 .0110982
+ 451748.06 .3173465 .0102626
+ 451789.72 .3407023 .0107679
+ 451831.38 .3396131 .0108721
+ 451873.16 .3250411 .0101514
+ 451914.81 .3381160 .0106546
+ 451956.50 .3447910 .0108024
+ 451998.28 .3515938 .0109446
+ 452039.97 .3461618 .0106833
+ 452081.69 .3317030 .0101068
+ 452123.41 .3318783 .0103293
+ 452165.19 .3428036 .0105482
+ 452206.91 .3389242 .0105854
+ 452248.62 .3566810 .0110234
+ 452290.47 .3282505 .0103050
+ 452332.19 .3386176 .0104871
+ 452373.94 .3448406 .0106478
+ 452415.78 .3282780 .0102353
+ 452457.53 .3199596 .0100090
+ 452499.28 .3347069 .0103568
+ 452541.06 .3556439 .0107006
+ 452582.91 .3266951 .0099273
+ 452624.69 .3248629 .0099988
+ 452666.47 .3483240 .0107400
+ 452708.34 .3259050 .0102442
+ 452750.16 .3528253 .0111288
+ 452791.94 .3425830 .0112270
+ 452833.75 .3346891 .0107879
+ 452875.66 .3565253 .0115916
+ 452917.47 .3440436 .0110940
+ 452959.28 .3336593 .0106995
+ 453001.22 .3310857 .0106581
+ 453043.03 .3356713 .0107162
+ 453084.88 .3362525 .0105986
+ 453126.72 .3448674 .0105793
+ 453168.66 .3319535 .0102191
+ 453210.53 .3432660 .0103394
+ 453252.41 .3559368 .0107383
+ 453294.34 .3421045 .0102892
+ 453336.22 .3353242 .0102281
+ 453378.12 .3314155 .0101265
+ 453420.00 .3562212 .0106232
+ 453461.97 .3321396 .0101677
+ 453503.88 .3473417 .0105666
+ 453545.78 .3366280 .0103086
+ 453587.78 .3229177 .0099496
+ 453629.69 .3503004 .0109266
+ 453671.62 .3242078 .0098794
+ 453713.56 .3275614 .0102602
+ 453755.56 .3213481 .0100696
+ 453797.50 .3386617 .0105367
+ 453839.47 .3249151 .0100994
+ 453881.50 .3312894 .0102665
+ 453923.44 .3330928 .0104157
+ 453965.41 .3108701 .0097850
+ 454007.38 .3457113 .0108432
+ 454049.44 .3302660 .0105713
+ 454091.44 .3441839 .0109361
+ 454133.41 .3491757 .0111811
+ 454175.50 .3185814 .0102267
+ 454217.50 .3487554 .0111544
+ 454259.50 .3341836 .0108224
+ 454301.50 .3446881 .0111624
+ 454343.59 .3287452 .0108377
+ 454385.62 .3511869 .0113340
+ 454427.66 .3371542 .0108997
+ 454469.78 .3306905 .0106713
+ 454511.81 .3313856 .0104807
+ 454553.88 .3343289 .0106382
+ 454595.91 .3531532 .0109559
+ 454638.06 .3511147 .0107371
+ 454680.12 .3399373 .0104909
+ 454722.19 .3401586 .0103628
+ 454764.34 .3276939 .0098472
+ 454806.44 .3517607 .0106798
+ 454848.53 .3441901 .0106176
+ 454890.62 .3451496 .0106879
+ 454932.78 .3630389 .0110782
+ 454974.91 .3327829 .0105396
+ 455017.00 .3386417 .0106842
+ 455059.22 .3384400 .0105029
+ 455101.34 .3494691 .0107882
+ 455143.47 .3353097 .0104296
+ 455185.69 .3558357 .0108330
+ 455227.81 .3296222 .0103721
+ 455269.97 .3366782 .0104320
+ 455312.12 .3332824 .0102891
+ 455354.34 .3306352 .0103091
+ 455396.53 .3474210 .0106752
+ 455438.69 .3318711 .0103036
+ 455480.94 .3317398 .0104244
+ 455523.12 .3381087 .0104843
+ 455565.31 .3255632 .0102025
+ 455607.50 .3204548 .0100303
+ 455649.78 .3349572 .0102088
+ 455692.00 .3217332 .0098112
+ 455734.19 .3384754 .0102246
+ 455776.50 .3483933 .0105225
+ 455818.72 .3497742 .0105840
+ 455860.94 .3438252 .0104250
+ 455903.19 .3402971 .0104198
+ 455945.50 .3476570 .0106492
+ 455987.75 .3383917 .0103693
+ 456030.00 .3363464 .0104453
+ 456072.34 .3427682 .0106103
+ 456114.59 .3240525 .0102146
+ 456156.88 .3471291 .0108358
+ 456199.16 .3566571 .0111117
+ 456241.50 .3250179 .0103366
+ 456283.81 .3186016 .0101103
+ 456326.09 .3590803 .0113283
+ 456368.47 .3466934 .0108164
+ 456410.78 .3470594 .0107644
+ 456453.09 .3285865 .0099979
+ 456495.41 .3395276 .0103888
+ 456537.81 .3494364 .0106422
+ 456580.12 .3348447 .0100777
+ 456622.47 .3478300 .0103757
+ 456664.91 .3523966 .0104504
+ 456707.25 .3345189 .0100575
+ 456749.59 .3346859 .0099526
+ 456791.94 .3182020 .0096301
+ 456834.41 .3550291 .0104717
+ 456876.78 .3400584 .0100935
+ 456919.16 .3418860 .0101775
+ 456961.59 .3425304 .0104360
+ 457004.00 .3356949 .0100761
+ 457046.38 .3400297 .0103069
+ 457088.78 .3487955 .0104448
+ 457131.28 .3501788 .0105473
+ 457173.69 .3354585 .0102148
+ 457216.09 .3420118 .0103689
+ 457258.59 .3352368 .0103415
+ 457301.03 .3286368 .0100988
+ 457343.47 .3385289 .0102353
+ 457385.91 .3383067 .0103142
+ 457428.44 .3522521 .0105915
+ 457470.88 .3443552 .0102133
+ 457513.34 .3538740 .0105226
+ 457555.91 .3436598 .0101386
+ 457598.38 .3337713 .0099966
+ 457640.84 .3467076 .0103332
+ 457683.41 .3477137 .0102551
+ 457725.88 .3315744 .0100635
+ 457768.38 .3316906 .0098531
+ 457810.88 .3326622 .0100995
+ 457853.47 .3423851 .0102962
+ 457895.97 .3557671 .0106929
+ 457938.50 .3355167 .0101839
+ 457981.09 .3458990 .0104392
+ 458023.62 .3365063 .0103566
+ 458066.16 .3326104 .0102865
+ 458108.72 .3235960 .0102337
+ 458151.34 .3463769 .0110361
+ 458193.91 .3356406 .0105459
+ 458236.44 .3412334 .0109227
+ 458279.09 .3372437 .0109103
+ 458321.66 .3394362 .0109006
+ 458364.25 .3487161 .0111995
+ 458406.84 .3520572 .0112259
+ 458449.50 .3382241 .0107950
+ 458492.09 .3453608 .0108536
+ 458534.69 .3486176 .0108119
+ 458577.38 .3508814 .0108495
+ 458620.00 .3457719 .0104616
+ 458662.62 .3340995 .0102970
+ 458705.25 .3469900 .0104902
+ 458747.94 .3611239 .0106397
+ 458790.59 .3404537 .0101698
+ 458833.22 .3596818 .0105217
+ 458875.97 .3420185 .0100374
+ 458918.62 .3316340 .0096758
+ 458961.28 .3542949 .0101902
+ 459003.94 .3500942 .0100756
+ 459046.69 .3387882 .0100155
+ 459089.38 .3394432 .0100468
+ 459132.06 .3269362 .0098005
+ 459174.81 .3563888 .0106733
+ 459217.53 .3385760 .0102459
+ 459260.22 .3508692 .0106970
+ 459302.94 .3293889 .0101629
+ 459345.72 .3495317 .0105753
+ 459388.44 .3405560 .0103740
+ 459431.19 .3328484 .0101811
+ 459474.00 .3352547 .0103925
+ 459516.72 .3445850 .0104825
+ 459559.47 .3571085 .0109517
+ 459602.22 .3540886 .0109024
+ 459645.06 .3514467 .0107743
+ 459687.81 .3278513 .0101379
+ 459730.59 .3522903 .0107204
+ 459773.44 .3435384 .0106128
+ 459816.22 .3333980 .0102746
+ 459859.00 .3548380 .0109622
+ 459901.78 .3431767 .0104167
+ 459944.69 .3320628 .0101558
+ 459987.47 .3453374 .0104611
+ 460030.28 .3357878 .0102842
+ 460073.19 .3463891 .0103219
+ 460116.00 .3485047 .0107947
+ 460158.84 .3479934 .0104664
+ 460201.75 .3502770 .0104769
+ 460244.59 .3502867 .0106976
+ 460287.44 .3447042 .0102086
+ 460330.28 .3391784 .0103486
+ 460373.22 .3350631 .0101058
+ 460416.09 .3499894 .0104637
+ 460458.97 .3407219 .0101083
+ 460501.91 .3597435 .0107748
+ 460544.78 .3484814 .0104366
+ 460587.69 .3426060 .0104724
+ 460630.56 .3522954 .0105485
+ 460673.56 .3486140 .0106247
+ 460716.47 .3447886 .0105082
+ 460759.38 .3521868 .0105535
+ 460802.38 .3527457 .0106330
+ 460845.28 .3343600 .0100895
+ 460888.22 .3419680 .0102843
+ 460931.16 .3259172 .0097758
+ 460974.19 .3397950 .0101095
+ 461017.12 .3222086 .0096534
+ 461060.09 .3440104 .0101039
+ 461103.12 .3567559 .0105521
+ 461146.09 .3355804 .0099146
+ 461189.06 .3378664 .0098297
+ 461232.03 .3558924 .0103383
+ 461275.09 .3577993 .0104480
+ 461318.09 .3536220 .0103033
+ 461361.09 .3431845 .0100643
+ 461404.16 .3541754 .0105159
+ 461447.19 .3321214 .0100831
+ 461490.19 .3508986 .0106395
+ 461533.22 .3460863 .0103343
+ 461576.31 .3576325 .0108667
+ 461619.34 .3504632 .0106361
+ 461662.38 .3406314 .0103797
+ 461705.50 .3519320 .0106645
+ 461748.56 .3649544 .0109304
+ 461791.62 .3353745 .0101286
+ 461834.69 .3525692 .0104565
+ 461877.84 .3405102 .0101404
+ 461920.91 .3376079 .0101208
+ 461963.97 .3370447 .0101764
+ 462007.16 .3416729 .0101842
+ 462050.25 .3551996 .0103853
+ 462093.34 .3361650 .0100242
+ 462136.44 .3540326 .0103093
+ 462179.62 .3378117 .0098516
+ 462222.75 .3398055 .0099337
+ 462265.88 .3407069 .0098538
+ 462309.09 .3337948 .0097213
+ 462352.22 .3408946 .0098188
+ 462395.34 .3483456 .0102688
+ 462438.50 .3274572 .0096778
+ 462481.75 .3384150 .0099640
+ 462524.91 .3481240 .0101702
+ 462568.06 .3276491 .0096415
+ 462611.31 .3374701 .0100503
+ 462654.50 .3228450 .0096341
+ 462697.69 .3361896 .0099358
+ 462740.88 .3483976 .0101607
+ 462784.12 .3417954 .0099650
+ 462827.34 .3423022 .0099718
+ 462870.53 .3510354 .0102986
+ 462913.84 .3412675 .0100468
+ 462957.06 .3410861 .0098720
+ 463000.28 .3385015 .0100360
+ 463043.59 .3489154 .0104140
+ 463086.84 .3571217 .0106697
+ 463130.06 .3616334 .0107006
+ 463173.31 .3424123 .0103563
+ 463216.66 .3488219 .0103732
+ 463259.94 .3476003 .0104642
+ 463303.19 .3389528 .0100799
+ 463346.53 .3434105 .0101577
+ 463389.81 .3426251 .0101638
+ 463433.12 .3490276 .0101367
+ 463476.41 .3435634 .0101911
+ 463519.78 .3568691 .0104130
+ 463563.09 .3337055 .0099461
+ 463606.41 .3406629 .0102495
+ 463649.78 .3555558 .0108073
+ 463693.12 .3416820 .0104206
+ 463736.44 .3484446 .0106558
+ 463779.78 .3385758 .0104318
+ 463823.19 .3371660 .0103218
+ 463866.53 .3525444 .0105104
+ 463909.91 .3320027 .0098806
+ 463953.34 .3552789 .0104241
+ 463996.72 .3587582 .0102329
+ 464040.06 .3564527 .0103011
+ 464083.44 .3595288 .0106757
+ 464126.91 .3481295 .0102501
+ 464170.31 .3555261 .0104551
+ 464213.69 .3280813 .0098099
+ 464257.19 .3487872 .0104037
+ 464300.59 .3462414 .0103892
+ 464344.00 .3268836 .0099104
+ 464387.44 .3481214 .0104150
+ 464430.94 .3628695 .0108922
+ 464474.38 .3519076 .0106030
+ 464517.81 .3510427 .0106112
+ 464561.31 .3342817 .0102726
+ 464604.78 .3478348 .0106618
+ 464648.22 .3389707 .0104118
+ 464691.69 .3573897 .0107059
+ 464735.25 .3363639 .0101875
+ 464778.72 .3273312 .0099177
+ 464822.19 .3492274 .0103249
+ 464865.78 .3431748 .0101606
+ 464909.25 .3291512 .0100448
+ 464952.75 .3509819 .0104872
+ 464996.25 .3430570 .0103793
+ 465039.84 .3681409 .0108312
+ 465083.38 .3543415 .0104873
+ 465126.91 .3371541 .0099833
+ 465170.50 .3291793 .0097706
+ 465214.03 .3555014 .0104124
+ 465257.59 .3430673 .0102592
+ 465301.12 .3231408 .0095815
+ 465344.78 .3652042 .0106663
+ 465388.34 .3569703 .0101877
+ 465431.91 .3489659 .0100553
+ 465475.56 .3547188 .0101293
+ 465519.12 .3542063 .0102214
+ 465562.72 .3444473 .0099793
+ 465606.38 .3306946 .0097283
+ 465649.97 .3350735 .0099106
+ 465693.59 .3388742 .0102034
+ 465737.19 .3367452 .0102852
+ 465780.91 .3401824 .0102178
+ 465824.50 .3324504 .0100948
+ 465868.12 .3348852 .0099819
+ 465911.84 .3516537 .0105022
+ 465955.50 .3550737 .0104365
+ 465999.12 .3354527 .0098746
+ 466042.78 .3400029 .0099058
+ 466086.53 .3454332 .0100449
+ 466130.19 .3599732 .0105346
+ 466173.88 .3420906 .0099804
+ 466217.62 .3256033 .0094765
+ 466261.31 .3374669 .0095679
+ 466305.00 .3451353 .0100373
+ 466348.69 .3272182 .0094830
+ 466392.47 .3446079 .0100674
+ 466436.19 .3454100 .0100817
+ 466479.91 .3386481 .0098381
+ 466523.69 .3263606 .0096450
+ 466567.44 .3505583 .0103181
+ 466611.16 .3172196 .0094209
+ 466654.91 .3280636 .0095170
+ 466698.72 .3482860 .0101948
+ 466742.47 .3481353 .0101273
+ 466786.22 .3441968 .0102502
+ 466830.06 .3554112 .0103926
+ 466873.84 .3547581 .0103727
+ 466917.62 .3298104 .0097461
+ 466961.41 .3482867 .0102639
+ 467005.28 .3590260 .0104165
+ 467049.06 .3387451 .0099946
+ 467092.84 .3497009 .0100882
+ 467136.75 .3510276 .0100298
+ 467180.56 .3319404 .0095880
+ 467224.38 .3390605 .0098444
+ 467268.19 .3482142 .0101140
+ 467312.12 .3359188 .0098341
+ 467355.94 .3339736 .0100179
+ 467399.78 .3399654 .0100817
+ 467443.72 .3460283 .0103728
+ 467487.59 .3449474 .0105757
+ 467531.44 .3563474 .0107528
+ 467575.31 .3605546 .0107767
+ 467619.25 .3397025 .0103889
+ 467663.16 .3411074 .0101330
+ 467707.03 .3742628 .0109366
+ 467751.00 .3775881 .0108925
+ 467794.91 .3505463 .0101728
+ 467838.81 .3537761 .0101179
+ 467882.72 .3529195 .0099530
+ 467926.72 .3377848 .0096228
+ 467970.66 .3552455 .0099475
+ 468014.56 .3466812 .0098677
+ 468058.59 .3511471 .0099556
+ 468102.53 .3518753 .0101337
+ 468146.47 .3396964 .0097474
+ 468190.44 .3382370 .0098875
+ 468234.47 .3580662 .0103969
+ 468278.44 .3605210 .0103344
+ 468322.41 .3363856 .0098209
+ 468366.47 .3617401 .0104237
+ 468410.47 .3485841 .0100657
+ 468454.44 .3465080 .0099584
+ 468498.53 .3384525 .0099817
+ 468542.53 .3739464 .0107374
+ 468586.53 .3360631 .0098364
+ 468630.56 .3518063 .0103785
+ 468674.66 .3490376 .0101773
+ 468718.69 .3471375 .0102657
+ 468762.72 .3491026 .0102286
+ 468806.84 .3456781 .0101453
+ 468850.91 .3672367 .0107909
+ 468894.97 .3244381 .0095223
+ 468939.00 .3451141 .0100633
+ 468983.16 .3583279 .0103042
+ 469027.25 .3480921 .0100832
+ 469071.31 .3692449 .0106599
+ 469115.47 .3448491 .0099226
+ 469159.56 .3595778 .0103789
+ 469203.66 .3358634 .0097452
+ 469247.78 .3363332 .0098699
+ 469291.97 .3617846 .0104547
+ 469336.09 .3401806 .0099493
+ 469380.19 .3552416 .0100557
+ 469424.41 .3503631 .0101082
+ 469468.53 .3393509 .0097842
+ 469512.69 .3232412 .0093324
+ 469556.84 .3524233 .0102240
+ 469601.06 .3424868 .0098040
+ 469645.22 .3572861 .0102818
+ 469689.41 .3509719 .0102252
+ 469733.66 .3513600 .0101635
+ 469777.81 .3385587 .0099363
+ 469822.00 .3398983 .0099855
+ 469866.19 .3597882 .0106327
+ 469910.47 .3504281 .0105831
+ 469954.69 .3521515 .0107840
+ 469998.91 .3410619 .0104196
+ 470043.19 .3429256 .0104562
+ 470087.41 .3485246 .0106091
+ 470131.62 .3379585 .0102564
+ 470175.88 .3531270 .0104817
+ 470220.19 .3453882 .0103355
+ 470264.44 .3442162 .0102681
+ 470308.69 .3607008 .0106419
+ 470353.03 .3510487 .0102414
+ 470397.31 .3504246 .0102090
+ 470441.56 .3547300 .0104189
+ 470485.84 .3569880 .0104641
+ 470530.22 .3464209 .0100950
+ 470574.50 .3459622 .0103559
+ 470618.81 .3362227 .0101265
+ 470663.19 .3517600 .0104681
+ 470707.50 .3556863 .0106571
+ 470751.81 .3492044 .0103495
+ 470796.12 .3309021 .0098475
+ 470840.56 .3310604 .0097302
+ 470884.88 .3614253 .0104829
+ 470929.22 .3510998 .0101972
+ 470973.66 .3301690 .0098749
+ 471018.00 .3649960 .0105381
+ 471062.38 .3656903 .0105003
+ 471106.81 .3700547 .0108097
+ 471151.19 .3444547 .0101083
+ 471195.56 .3616416 .0106208
+ 471239.94 .3582973 .0106584
+ 471284.44 .3503762 .0104773
+ 471328.81 .3383480 .0103247
+ 471373.22 .3413685 .0101705
+ 471417.72 .3510616 .0106028
+ 471462.12 .3609083 .0108523
+ 471506.56 .3783386 .0113694
+ 471550.97 .3413807 .0103222
+ 471595.50 .3491846 .0104119
+ 471639.94 .3467584 .0104430
+ 471684.38 .3537293 .0106350
+ 471728.94 .3526249 .0105336
+ 471773.38 .3408246 .0101542
+ 471817.84 .3263937 .0098639
+ 471862.31 .3381341 .0101596
+ 471906.88 .3513151 .0104495
+ 471951.38 .3345681 .0100939
+ 471995.88 .3260094 .0098444
+ 472040.44 .3677287 .0109630
+ 472084.94 .3443027 .0102568
+ 472129.47 .3405245 .0103727
+ 472173.97 .3599686 .0107737
+ 472218.59 .3523252 .0106846
+ 472263.12 .3385678 .0103631
+ 472307.66 .3738143 .0113225
+ 472352.28 .3443109 .0105619
+ 472396.81 .3327747 .0101752
+ 472441.38 .3322411 .0100343
+ 472485.94 .3379001 .0099026
+ 472530.59 .3486748 .0102998
+ 472575.16 .3465199 .0102496
+ 472619.75 .3473116 .0102689
+ 472664.41 .3718463 .0108411
+ 472709.00 .3424198 .0102391
+ 472753.59 .3648439 .0108371
+ 472798.19 .3659635 .0108298
+ 472842.91 .3555184 .0105718
+ 472887.50 .3365888 .0100361
+ 472932.12 .3561665 .0106122
+ 472976.84 .3482481 .0102347
+ 473021.50 .3351419 .0098556
+ 473066.12 .3361350 .0098657
+ 473110.78 .3348605 .0098675
+ 473155.53 .3480616 .0101408
+ 473200.19 .3387924 .0099634
+ 473244.84 .3506051 .0102918
+ 473289.59 .3447501 .0099896
+ 473334.28 .3509150 .0102205
+ 473378.97 .3350658 .0099020
+ 473423.66 .3632906 .0103893
+ 473468.44 .3445679 .0100633
+ 473513.16 .3335260 .0097171
+ 473557.88 .3641837 .0104913
+ 473602.69 .3622107 .0103999
+ 473647.41 .3628386 .0103870
+ 473692.12 .3344713 .0095606
+ 473736.94 .3524594 .0098960
+ 473781.69 .3538876 .0100352
+ 473826.44 .3453053 .0098842
+ 473871.19 .3394783 .0096748
+ 473916.06 .3615581 .0103122
+ 473960.81 .3534581 .0102142
+ 474005.59 .3457928 .0100306
+ 474050.47 .3668858 .0105652
+ 474095.25 .3491291 .0103725
+ 474140.03 .3621708 .0105360
+ 474184.84 .3417718 .0100698
+ 474229.75 .3527749 .0103674
+ 474274.56 .3465247 .0101446
+ 474319.38 .3397287 .0097893
+ 474364.28 .3605954 .0103395
+ 474409.12 .3483222 .0101471
+ 474453.94 .3409597 .0098132
+ 474498.81 .3566461 .0102520
+ 474543.75 .3428287 .0098589
+ 474588.59 .3401984 .0098493
+ 474633.47 .3470885 .0102499
+ 474678.41 .3563764 .0104013
+ 474723.28 .3582019 .0103423
+ 474768.19 .3471443 .0101633
+ 474813.06 .3392825 .0100050
+ 474858.03 .3368190 .0097005
+ 474902.94 .3417586 .0098148
+ 474947.84 .3499956 .0099795
+ 474992.84 .3519877 .0100829
+ 475037.78 .3552303 .0102010
+ 475082.72 .3550047 .0102940
+ 475127.66 .3597158 .0105005
+ 475172.66 .3391605 .0100008
+ 475217.62 .3432010 .0100241
+ 475262.56 .3622223 .0104913
+ 475307.62 .3345234 .0097514
+ 475352.59 .3578547 .0102539
+ 475397.56 .3530904 .0100613
+ 475442.53 .3600135 .0102650
+ 475487.59 .3348779 .0097062
+ 475532.59 .3401176 .0097871
+ 475577.59 .3590575 .0103054
+ 475622.69 .3470400 .0100868
+ 475667.69 .3595801 .0102892
+ 475712.72 .3542574 .0102523
+ 475757.75 .3496670 .0099837
+ 475802.84 .3481653 .0100830
+ 475847.91 .3361852 .0097224
+ 475892.94 .3615408 .0104008
+ 475938.06 .3525900 .0101423
+ 475983.12 .3492627 .0101419
+ 476028.19 .3430914 .0096976
+ 476073.25 .3549518 .0100735
+ 476118.41 .3547446 .0100165
+ 476163.50 .3463736 .0097296
+ 476208.59 .3426331 .0098497
+ 476253.78 .3324238 .0096532
+ 476298.88 .3509346 .0101568
+ 476343.97 .3662139 .0105664
+ 476389.09 .3559216 .0103690
+ 476434.28 .3509608 .0102166
+ 476479.44 .3391042 .0099551
+ 476524.56 .3422759 .0099362
+ 476569.78 .3514330 .0102060
+ 476614.94 .3419476 .0098546
+ 476660.06 .3639767 .0103996
+ 476705.31 .3478981 .0099722
+ 476750.50 .3794323 .0106792
+ 476795.66 .3606398 .0100831
+ 476840.84 .3671556 .0101305
+ 476886.09 .3419613 .0095127
+ 476931.31 .3575669 .0099379
+ 476976.50 .3635183 .0102259
+ 477021.78 .3488851 .0097770
+ 477067.00 .3433032 .0097440
+ 477112.22 .3497423 .0099533
+ 477157.44 .3492490 .0100155
+ 477202.75 .3274112 .0096118
+ 477248.00 .3592637 .0102396
+ 477293.22 .3723952 .0105654
+ 477338.56 .3558291 .0103905
+ 477383.81 .3633377 .0104437
+ 477429.06 .3591426 .0101316
+ 477474.34 .3566522 .0099772
+ 477519.72 .3548420 .0097919
+ 477565.00 .3568609 .0097300
+ 477610.28 .3406996 .0093444
+ 477655.66 .3555455 .0095562
+ 477700.97 .3742046 .0100421
+ 477746.25 .3488227 .0096455
+ 477791.56 .3353856 .0093037
+ 477836.97 .3650587 .0101885
+ 477882.31 .3540796 .0099111
+ 477927.62 .3527428 .0099966
+ 477973.06 .3656585 .0102503
+ 478018.41 .3493264 .0097845
+ 478063.75 .3477402 .0097104
+ 478109.12 .3606297 .0100296
+ 478154.56 .3644355 .0100459
+ 478199.94 .3488665 .0095292
+ 478245.31 .3572658 .0097409
+ 478290.78 .3718990 .0101897
+ 478336.19 .3566208 .0098784
+ 478381.56 .3463364 .0096288
+ 478426.97 .3511595 .0097573
+ 478472.47 .3494968 .0096955
+ 478517.91 .3395325 .0095764
+ 478563.31 .3522722 .0098367
+ 478608.84 .3675145 .0102045
+ 478654.28 .3559282 .0100662
+ 478699.72 .3703696 .0104585
+ 478745.16 .3321399 .0095191
+ 478790.69 .3690400 .0104960
+ 478836.16 .3369286 .0096662
+ 478881.62 .3467177 .0098389
+ 478927.19 .3675962 .0104341
+ 478972.69 .3587127 .0101448
+ 479018.16 .3559167 .0100859
+ 479063.66 .3579271 .0099978
+ 479109.25 .3619904 .0100891
+ 479154.75 .3549848 .0098316
+ 479200.25 .3474573 .0096775
+ 479245.88 .3517960 .0098209
+ 479291.41 .3439552 .0095714
+ 479336.94 .3597260 .0099926
+ 479382.56 .3687834 .0102514
+ 479428.09 .3468612 .0097123
+ 479473.66 .3586753 .0100058
+ 479519.22 .3300942 .0092746
+ 479564.88 .3484385 .0096192
+ 479610.44 .3662479 .0100679
+ 479656.03 .3517891 .0098088
+ 479701.69 .3727930 .0102495
+ 479747.28 .3454614 .0095561
+ 479792.88 .3585687 .0101099
+ 479838.47 .3511190 .0098033
+ 479884.19 .3674903 .0102768
+ 479929.81 .3541981 .0098104
+ 479975.44 .3603521 .0101949
+ 480021.12 .3495632 .0098432
+ 480066.78 .3538788 .0099093
+ 480112.41 .3600154 .0103566
+ 480158.06 .3450163 .0098923
+ 480203.81 .3489511 .0099116
+ 480249.47 .3539868 .0100011
+ 480295.16 .3690026 .0103248
+ 480340.91 .3653980 .0102268
+ 480386.59 .3435814 .0095778
+ 480432.28 .3489141 .0097756
+ 480477.97 .3405557 .0094966
+ 480523.78 .3431687 .0094426
+ 480569.47 .3547353 .0097311
+ 480615.19 .3615422 .0099164
+ 480661.00 .3501488 .0097522
+ 480706.72 .3549620 .0098215
+ 480752.47 .3673464 .0103442
+ 480798.22 .3325575 .0094911
+ 480844.03 .3439890 .0097033
+ 480889.78 .3560956 .0100569
+ 480935.56 .3439714 .0098164
+ 480981.41 .3415625 .0098184
+ 481027.19 .3357257 .0096939
+ 481072.97 .3494503 .0100173
+ 481118.75 .3490680 .0101140
+ 481164.62 .3389776 .0097817
+ 481210.44 .3440796 .0099850
+ 481256.25 .3220262 .0092961
+ 481302.16 .3560970 .0103155
+ 481347.97 .3505637 .0100294
+ 481393.78 .3363793 .0097111
+ 481439.62 .3286066 .0094419
+ 481485.56 .3366040 .0095978
+ 481531.41 .3501704 .0098005
+ 481577.25 .3305418 .0093271
+ 481623.19 .3419382 .0094477
+ 481669.06 .3451365 .0096480
+ 481714.94 .3405008 .0095798
+ 481760.81 .3523076 .0098427
+ 481806.78 .3515514 .0099442
+ 481852.69 .3388447 .0097362
+ 481898.56 .3546073 .0102112
+ 481944.56 .3458308 .0099794
+ 481990.47 .3598062 .0103415
+ 482036.41 .3326912 .0095880
+ 482082.31 .3584411 .0102323
+ 482128.34 .3472164 .0098482
+ 482174.28 .3466861 .0100008
+ 482220.22 .3486923 .0100931
+ 482266.25 .3445482 .0100437
+ 482312.22 .3461285 .0100929
+ 482358.19 .3447618 .0099899
+ 482404.25 .3591810 .0104082
+ 482450.22 .3473983 .0101476
+ 482496.22 .3625646 .0104172
+ 482542.19 .3358705 .0097741
+ 482588.28 .3524060 .0102020
+ 482634.28 .3446950 .0100757
+ 482680.31 .3548637 .0103735
+ 482726.41 .3724275 .0107475
+ 482772.44 .3370287 .0098484
+ 482818.47 .3459699 .0099375
+ 482864.50 .3563681 .0099994
+ 482910.62 .3407572 .0095955
+ 482956.69 .3526508 .0097363
+ 483002.72 .3584512 .0097952
+ 483048.88 .3633858 .0099191
+ 483094.94 .3574519 .0097425
+ 483141.03 .3576337 .0096927
+ 483187.12 .3622561 .0100025
+ 483233.28 .3594740 .0097900
+ 483279.38 .3486438 .0095600
+ 483325.50 .3667123 .0100807
+ 483371.69 .3633373 .0102174
+ 483417.81 .3432500 .0095645
+ 483463.94 .3473127 .0097058
+ 483510.06 .3517715 .0097657
+ 483556.28 .3608961 .0100384
+ 483602.41 .3487642 .0097610
+ 483648.56 .3510527 .0097117
+ 483694.81 .3540486 .0098102
+ 483740.97 .3468248 .0095368
+ 483787.16 .3439102 .0095839
+ 483833.31 .3576319 .0100588
+ 483879.59 .3485188 .0099246
+ 483925.78 .3574268 .0102971
+ 483971.97 .3472998 .0099086
+ 484018.25 .3494586 .0101220
+ 484064.47 .3556023 .0102744
+ 484110.69 .3451402 .0100401
+ 484156.91 .3544641 .0101360
+ 484203.22 .3630156 .0104220
+ 484249.47 .3562806 .0102844
+ 484295.69 .3586672 .0102816
+ 484342.03 .3487934 .0099113
+ 484388.28 .3400790 .0098296
+ 484434.56 .3586468 .0102548
+ 484480.81 .3592535 .0101730
+ 484527.19 .3533792 .0101147
+ 484573.47 .3445567 .0096572
+ 484619.75 .3662324 .0101334
+ 484666.12 .3805597 .0106509
+ 484712.44 .3467724 .0097284
+ 484758.75 .3473854 .0098292
+ 484805.06 .3610013 .0100156
+ 484851.47 .3689473 .0103602
+ 484897.78 .3425544 .0096075
+ 484944.12 .3635320 .0101794
+ 484990.56 .3531318 .0099502
+ 485036.91 .3381566 .0095594
+ 485083.25 .3580562 .0099972
+ 485129.72 .3543571 .0099010
+ 485176.09 .3485442 .0098019
+ 485222.47 .3637281 .0102304
+ 485268.84 .3643358 .0101743
+ 485315.31 .3574081 .0099878
+ 485361.72 .3470502 .0096971
+ 485408.09 .3651145 .0100752
+ 485454.59 .3548421 .0097551
+ 485501.03 .3657071 .0099718
+ 485547.44 .3478375 .0095995
+ 485593.88 .3503678 .0097195
+ 485640.38 .3523660 .0096382
+ 485686.84 .3575127 .0097850
+ 485733.28 .3496931 .0097442
+ 485779.81 .3759097 .0105105
+ 485826.28 .3611111 .0100097
+ 485872.75 .3526908 .0098054
+ 485919.22 .3817720 .0105475
+ 485965.78 .3491091 .0097084
+ 486012.28 .3675907 .0100931
+ 486058.78 .3670356 .0100333
+ 486105.38 .3591402 .0098979
+ 486151.88 .3382420 .0094366
+ 486198.38 .3652705 .0100945
+ 486244.91 .3419470 .0096111
+ 486291.53 .3604625 .0099111
+ 486338.06 .3670410 .0102890
+ 486384.59 .3661580 .0102055
+ 486431.25 .3485319 .0097701
+ 486477.78 .3539746 .0098383
+ 486524.34 .3501751 .0098881
+ 486570.94 .3540857 .0100218
+ 486617.59 .3453355 .0097949
+ 486664.16 .3528540 .0098897
+ 486710.75 .3559539 .0099807
+ 486757.44 .3702380 .0101563
+ 486804.03 .3696873 .0101383
+ 486850.66 .3597791 .0097309
+ 486897.25 .3393754 .0093037
+ 486943.97 .3374054 .0090382
+ 486990.59 .3573625 .0095906
+ 487037.25 .3508336 .0094336
+ 487083.97 .3506550 .0093563
+ 487130.62 .3496879 .0094961
+ 487177.28 .3492734 .0095290
+ 487223.94 .3373957 .0093695
+ 487270.69 .3396889 .0095719
+ 487317.38 .3454294 .0097295
+ 487364.06 .3651921 .0103401
+ 487410.81 .3646456 .0103115
+ 487457.53 .3699445 .0102995
+ 487504.22 .3299966 .0093710
+ 487550.94 .3604798 .0097645
+ 487597.75 .3455086 .0093381
+ 487644.47 .3510713 .0096006
+ 487691.19 .3652907 .0097192
+ 487738.00 .3762656 .0099290
+ 487784.75 .3620630 .0096804
+ 487831.50 .3667956 .0098574
+ 487878.34 .3573302 .0096478
+ 487925.12 .3650751 .0099196
+ 487971.88 .3643358 .0100262
+ 488018.66 .3385088 .0093900
+ 488065.53 .3563207 .0097531
+ 488112.31 .3827201 .0106255
+ 488159.12 .3602147 .0100738
+ 488206.00 .3693424 .0101953
+ 488252.81 .3552395 .0098306
+ 488299.62 .3712962 .0103297
+ 488346.47 .3544956 .0098531
+ 488393.38 .3651627 .0103570
+ 488440.22 .3776259 .0105905
+ 488487.06 .3543316 .0100677
+ 488534.00 .3508766 .0100195
+ 488580.84 .3768466 .0105720
+ 488627.72 .3608263 .0101982
+ 488674.59 .3500138 .0099574
+ 488721.56 .3674640 .0103006
+ 488768.44 .3492015 .0097875
+ 488815.31 .3688655 .0102686
+ 488862.31 .3659705 .0101034
+ 488909.22 .3655500 .0098990
+ 488956.12 .3746832 .0101422
+ 489003.03 .3603155 .0099039
+ 489050.06 .3512652 .0095513
+ 489097.00 .3596945 .0098515
+ 489143.94 .3532449 .0097720
+ 489190.97 .3491861 .0096413
+ 489237.91 .3588159 .0099554
+ 489284.88 .3535947 .0097742
+ 489331.84 .3725224 .0103558
+ 489378.91 .3618581 .0100130
+ 489425.88 .3643760 .0099536
+ 489472.88 .3470687 .0094184
+ 489519.94 .3490591 .0094498
+ 489566.94 .3636864 .0098769
+ 489613.94 .3652474 .0098165
+ 489660.97 .3748215 .0102061
+ 489708.06 .3485584 .0096207
+ 489755.09 .3522026 .0097147
+ 489802.12 .3760276 .0103509
+ 489849.25 .3692369 .0104870
+ 489896.31 .3659375 .0102994
+ 489943.34 .3612938 .0102595
+ 489990.41 .3582309 .0102226
+ 490037.56 .3555233 .0102531
+ 490084.66 .3725062 .0103871
+ 490131.72 .3669912 .0103423
+ 490178.91 .3504377 .0099616
+ 490226.00 .3657204 .0102598
+ 490273.09 .3617975 .0102561
+ 490320.22 .3590769 .0100971
+ 490367.41 .3504962 .0099611
+ 490414.53 .3654038 .0104167
+ 490461.66 .3545492 .0101055
+ 490508.88 .3529112 .0101980
+ 490556.03 .3694966 .0105612
+ 490603.16 .3383065 .0099546
+ 490650.31 .3709309 .0106048
+ 490697.56 .3405489 .0099218
+ 490744.75 .3593638 .0100821
+ 490791.91 .3526611 .0096998
+ 490839.19 .3618812 .0100854
+ 490886.38 .3646131 .0099659
+ 490933.56 .3641261 .0099523
+ 490980.88 .3413848 .0093800
+ 491028.09 .3562067 .0098530
+ 491075.28 .3638501 .0099092
+ 491122.53 .3672615 .0100870
+ 491169.84 .3668078 .0101025
+ 491217.06 .3420005 .0094702
+ 491264.31 .3758611 .0104055
+ 491311.66 .3570674 .0097255
+ 491358.91 .3437947 .0095038
+ 491406.19 .3739731 .0100611
+ 491453.44 .3532367 .0095189
+ 491500.81 .3444207 .0093854
+ 491548.09 .3583902 .0095679
+ 491595.41 .3352793 .0090895
+ 491642.78 .3631066 .0097136
+ 491690.09 .3635809 .0098937
+ 491737.41 .3757928 .0102982
+ 491784.72 .3434738 .0095462
+ 491832.12 .3503816 .0097106
+ 491879.47 .3665130 .0100439
+ 491926.81 .3521672 .0096814
+ 491974.25 .3554943 .0097694
+ 492021.59 .3604167 .0098704
+ 492068.97 .3449934 .0095065
+ 492116.31 .3640261 .0098744
+ 492163.78 .3529092 .0097079
+ 492211.16 .3509336 .0095121
+ 492258.56 .3482151 .0095460
+ 492306.03 .3583498 .0096544
+ 492353.44 .3600820 .0097894
+ 492400.84 .3584428 .0096835
+ 492448.25 .3617391 .0097807
+ 492495.78 .3550151 .0095030
+ 492543.19 .3582324 .0096398
+ 492590.62 .3665006 .0099679
+ 492638.16 .3542203 .0095916
+ 492685.62 .3487256 .0093411
+ 492733.06 .3582795 .0094709
+ 492780.53 .3535932 .0094768
+ 492828.09 .3689686 .0097997
+ 492875.56 .3616673 .0096593
+ 492923.06 .3516874 .0094184
+ 492970.62 .3634108 .0097212
+ 493018.12 .3736282 .0099561
+ 493065.62 .3560208 .0094285
+ 493113.16 .3641649 .0097819
+ 493160.75 .3521554 .0096246
+ 493208.28 .3504577 .0096235
+ 493255.81 .3745321 .0102151
+ 493303.44 .3588776 .0098135
+ 493350.97 .3395028 .0093975
+ 493398.53 .3686415 .0101865
+ 493446.09 .3730387 .0103075
+ 493493.75 .3661656 .0101936
+ 493541.31 .3640148 .0101587
+ 493588.91 .3843382 .0108890
+ 493636.56 .3672498 .0104223
+ 493684.16 .3637738 .0103744
+ 493731.78 .3701277 .0104733
+ 493779.47 .3664211 .0104227
+ 493827.09 .3621300 .0101993
+ 493874.69 .3564787 .0099545
+ 493922.34 .3547848 .0099539
+ 493970.06 .3470564 .0097595
+ 494017.69 .3581696 .0100866
+ 494065.34 .3631001 .0101453
+ 494113.09 .3662562 .0100962
+ 494160.75 .3655387 .0100539
+ 494208.41 .3416456 .0095466
+ 494256.09 .3706595 .0101052
+ 494303.88 .3516629 .0096131
+ 494351.56 .3576478 .0096799
+ 494399.25 .3677082 .0098757
+ 494447.06 .3469217 .0093006
+ 494494.75 .3621941 .0096569
+ 494542.47 .3624516 .0096778
+ 494590.19 .3630615 .0097771
+ 494638.03 .3588596 .0097035
+ 494685.75 .3754821 .0102670
+ 494733.50 .3778936 .0103670
+ 494781.34 .3566693 .0099273
+ 494829.12 .3577954 .0097919
+ 494876.88 .3367453 .0094882
+ 494924.66 .3553253 .0100434
+ 494972.53 .3625384 .0101291
+ 495020.31 .3589779 .0100717
+ 495068.09 .3569119 .0099496
+ 495116.00 .3581460 .0099761
+ 495163.81 .3571589 .0099482
+ 495211.62 .3549451 .0098703
+ 495259.44 .3669240 .0100806
+ 495307.34 .3635261 .0099880
+ 495355.19 .3624944 .0100103
+ 495403.03 .3624068 .0097517
+ 495450.97 .3569403 .0097371
+ 495498.81 .3709442 .0100193
+ 495546.69 .3601725 .0097901
+ 495594.56 .3599895 .0096658
+ 495642.53 .3535078 .0098323
+ 495690.41 .3479344 .0093412
+ 495738.31 .3411151 .0092638
+ 495786.28 .3574892 .0097414
+ 495834.19 .3552223 .0095954
+ 495882.09 .3632100 .0097731
+ 495930.03 .3531583 .0095142
+ 495978.03 .3467652 .0094766
+ 496025.97 .3615931 .0098048
+ 496073.91 .3507305 .0096052
+ 496121.94 .3655134 .0099090
+ 496169.91 .3673224 .0100334
+ 496217.88 .3711442 .0100370
+ 496265.81 .3785920 .0102142
+ 496313.91 .3774276 .0101925
+ 496361.88 .3730148 .0102496
+ 496409.88 .3586853 .0099416
+ 496457.94 .3647504 .0100821
+ 496505.94 .3649641 .0100892
+ 496553.97 .3618433 .0101329
+ 496601.97 .3740828 .0105121
+ 496650.09 .3454431 .0096133
+ 496698.12 .3547062 .0098910
+ 496746.16 .3651520 .0099333
+ 496794.28 .3676664 .0099584
+ 496842.34 .3594411 .0095550
+ 496890.41 .3633866 .0096589
+ 496938.56 .3520554 .0091557
+ 496986.62 .3554451 .0093037
+ 497034.72 .3513890 .0091642
+ 497082.78 .3536959 .0092064
+ 497130.97 .3603283 .0094578
+ 497179.06 .3617482 .0094401
+ 497227.19 .3534755 .0093343
+ 497275.38 .3389188 .0089509
+ 497323.50 .3510356 .0092902
+ 497371.62 .3679267 .0095466
+ 497419.78 .3682247 .0096215
+ 497468.00 .3556881 .0092524
+ 497516.16 .3677745 .0098151
+ 497564.31 .3636698 .0095098
+ 497612.56 .3593540 .0094094
+ 497660.72 .3562083 .0094099
+ 497708.91 .3646967 .0095539
+ 497757.09 .3629327 .0095311
+ 497805.38 .3499514 .0091862
+ 497853.56 .3644528 .0095082
+ 497901.78 .3540550 .0092546
+ 497950.06 .3875250 .0100158
+ 497998.28 .3664196 .0096608
+ 498046.53 .3598648 .0095248
+ 498094.75 .3578598 .0095343
+ 498143.09 .3640668 .0099481
+ 498191.34 .3727494 .0100108
+ 498239.59 .3607559 .0097911
+ 498287.94 .3677700 .0101960
+ 498336.22 .4041475 .0110808
+ 498384.47 .3703611 .0101255
+ 498432.75 .3525999 .0098166
+ 498481.16 .3635068 .0100037
+ 498529.44 .3779393 .0103828
+ 498577.75 .3659024 .0100729
+ 498626.16 .3682267 .0100790
+ 498674.47 .3702908 .0101511
+ 498722.78 .3397654 .0093676
+ 498771.12 .3769567 .0103246
+ 498819.53 .3564467 .0098259
+ 498867.88 .3499416 .0095109
+ 498916.25 .3479421 .0095529
+ 498964.69 .3607160 .0097085
+ 499013.06 .3591036 .0097892
+ 499061.44 .3406108 .0092692
+ 499109.81 .3574130 .0096680
+ 499158.28 .3551139 .0094935
+ 499206.69 .3718433 .0098337
+ 499255.09 .3533332 .0095005
+ 499303.59 .3542875 .0094234
+ 499352.00 .3398846 .0091272
+ 499400.41 .3758970 .0101544
+ 499448.84 .3710620 .0099766
+ 499497.38 .3475372 .0092210
+ 499545.81 .3550949 .0094262
+ 499594.28 .3870471 .0102834
+ 499642.81 .3606205 .0096282
+ 499691.28 .3462519 .0092050
+ 499739.75 .3529516 .0095465
+ 499788.34 .3582357 .0097143
+ 499836.81 .3544061 .0094837
+ 499885.31 .3493460 .0094677
+ 499933.81 .3664678 .0098230
+ 499982.41 .3553089 .0094724
+ 500030.94 .3663393 .0097609
+ 500079.44 .3708636 .0098854
+ 500128.06 .3729290 .0098344
+ 500176.59 .3598529 .0096229
+ 500225.16 .3585611 .0096439
+ 500273.69 .3652684 .0098172
+ 500322.34 .3648843 .0098115
+ 500370.91 .3647547 .0097770
+ 500419.47 .3615303 .0098184
+ 500468.16 .3698780 .0100186
+ 500516.72 .3648445 .0097993
+ 500565.31 .3532276 .0095143
+ 500613.91 .3563759 .0095978
+ 500662.62 .3584665 .0094912
+ 500711.22 .3612820 .0095018
+ 500759.84 .3486658 .0093246
+ 500808.56 .3694646 .0097733
+ 500857.22 .3648744 .0098177
+ 500905.84 .3766021 .0101079
+ 500954.50 .3664474 .0097922
+ 501003.25 .3697191 .0099226
+ 501051.91 .3503450 .0093716
+ 501100.59 .3732615 .0099381
+ 501149.34 .3608025 .0097616
+ 501198.03 .3522468 .0093406
+ 501246.72 .3854498 .0100798
+ 501295.41 .3663507 .0095215
+ 501344.22 .3631370 .0094933
+ 501392.94 .3524975 .0092596
+ 501441.66 .3617671 .0095109
+ 501490.47 .3731892 .0097137
+ 501539.22 .3602647 .0097246
+ 501587.94 .3305495 .0089239
+ 501636.69 .3654122 .0099395
+ 501685.53 .3459247 .0095075
+ 501734.31 .3701552 .0101443
+ 501783.06 .3705641 .0101368
+ 501831.94 .3771817 .0104517
+ 501880.72 .3661331 .0102415
+ 501929.53 .3621987 .0098920
+ 501978.31 .3656306 .0099899
+ 502027.22 .3541889 .0096126
+ 502076.03 .3700006 .0098709
+ 502124.84 .3694629 .0098905
+ 502173.75 .3742499 .0098802
+ 502222.59 .3682804 .0098377
+ 502271.44 .3570333 .0097066
+ 502320.28 .3631892 .0097163
+ 502369.22 .3445812 .0093472
+ 502418.09 .3813092 .0101880
+ 502466.97 .3529309 .0095221
+ 502515.94 .3689398 .0099328
+ 502564.81 .3561048 .0097552
+ 502613.72 .3682459 .0100751
+ 502662.69 .3629898 .0099040
+ 502711.59 .3659708 .0099306
+ 502760.50 .3494270 .0095877
+ 502809.44 .3661190 .0099579
+ 502858.47 .3678271 .0099059
+ 502907.38 .3742498 .0100304
+ 502956.31 .3595235 .0095369
+ 503005.38 .3681128 .0097643
+ 503054.31 .3543743 .0094159
+ 503103.28 .3576950 .0096400
+ 503152.25 .3737812 .0100286
+ 503201.31 .3468654 .0096346
+ 503250.31 .3702317 .0104134
+ 503299.31 .3813227 .0105890
+ 503348.38 .3504708 .0098177
+ 503397.41 .3584381 .0098890
+ 503446.41 .3502434 .0097910
+ 503495.44 .3513002 .0095813
+ 503544.53 .3497566 .0094142
+ 503593.59 .3592228 .0097241
+ 503642.62 .3655529 .0098681
+ 503691.75 .3734953 .0098461
+ 503740.81 .3567247 .0096789
+ 503789.88 .3516200 .0095717
+ 503838.94 .3510006 .0096029
+ 503888.12 .3646180 .0096519
+ 503937.19 .3780159 .0100808
+ 503986.28 .3596066 .0096601
+ 504035.47 .3707133 .0098445
+ 504084.59 .3572955 .0094998
+ 504133.69 .3616880 .0095493
+ 504182.81 .3742597 .0098743
+ 504232.03 .3519545 .0094481
+ 504281.19 .3565219 .0095960
+ 504330.31 .3577850 .0097623
+ 504379.56 .3599324 .0098094
+ 504428.72 .3691674 .0098811
+ 504477.88 .3547434 .0095413
+ 504527.06 .3528254 .0095491
+ 504576.31 .3749765 .0100846
+ 504625.50 .3660880 .0098920
+ 504674.69 .3797654 .0103370
+ 504724.00 .3666581 .0099081
+ 504773.19 .3654339 .0100273
+ 504822.41 .3773797 .0102871
+ 504871.62 .3616942 .0099168
+ 504920.94 .3586679 .0099984
+ 504970.19 .3556246 .0098551
+ 505019.44 .3744024 .0103478
+ 505068.78 .3761042 .0104283
+ 505118.03 .3632910 .0098065
+ 505167.28 .3522591 .0096800
+ 505216.56 .3829367 .0103846
+ 505265.94 .3753671 .0101964
+ 505315.22 .3775924 .0101242
+ 505364.50 .3429664 .0092464
+ 505413.91 .3580058 .0095941
+ 505463.22 .3541894 .0095387
+ 505512.53 .3673261 .0097563
+ 505561.84 .3862565 .0103779
+ 505611.28 .3547781 .0096784
+ 505660.59 .3714888 .0099313
+ 505709.94 .3798106 .0100030
+ 505759.41 .3738316 .0099757
+ 505808.75 .3510925 .0092159
+ 505858.12 .3607379 .0094667
+ 505907.59 .3650572 .0095391
+ 505956.97 .3785580 .0099574
+ 506006.34 .3480679 .0091082
+ 506055.75 .3494188 .0093696
+ 506105.25 .3668180 .0097955
+ 506154.66 .3613449 .0096323
+ 506204.06 .3591618 .0095589
+ 506253.56 .3525586 .0094462
+ 506303.00 .3460985 .0090666
+ 506352.44 .3651750 .0094539
+ 506401.88 .3902025 .0102544
+ 506451.44 .3720688 .0097152
+ 506500.91 .3727666 .0098441
+ 506550.34 .3803829 .0100232
+ 506599.94 .3564820 .0095991
+ 506649.41 .3531594 .0094212
+ 506698.91 .3518775 .0093475
+ 506748.38 .3789390 .0100305
+ 506798.00 .3674237 .0097258
+ 506847.50 .3609608 .0093981
+ 506897.00 .3505907 .0092683
+ 506946.62 .3680048 .0096452
+ 506996.16 .3691603 .0095593
+ 507045.69 .3898310 .0101943
+ 507095.25 .3693165 .0096096
+ 507144.91 .3615146 .0094251
+ 507194.47 .3678868 .0095337
+ 507244.03 .3671376 .0095859
+ 507293.69 .3561924 .0092507
+ 507343.28 .3657816 .0094883
+ 507392.88 .3670605 .0096340
+ 507442.47 .3436714 .0091118
+ 507492.16 .3605389 .0094285
+ 507541.78 .3766255 .0098411
+ 507591.41 .3659541 .0094469
+ 507641.12 .3769242 .0098179
+ 507690.75 .3612192 .0094100
+ 507740.38 .3631425 .0095016
+ 507790.03 .3712212 .0096990
+ 507839.78 .3593672 .0093842
+ 507889.44 .3767498 .0096993
+ 507939.12 .3661664 .0094226
+ 507988.88 .3784035 .0097996
+ 508038.56 .3656333 .0095651
+ 508088.25 .3556720 .0091395
+ 508137.97 .3758020 .0098605
+ 508187.75 .3632468 .0093965
+ 508237.47 .3532428 .0092750
+ 508287.19 .3593097 .0095014
+ 508337.03 .3610208 .0095864
+ 508386.75 .3738569 .0097346
+ 508436.50 .3739226 .0097771
+ 508486.25 .3688357 .0097936
+ 508536.09 .3795646 .0098597
+ 508585.88 .3651000 .0095951
+ 508635.62 .3560774 .0093515
+ 508685.50 .3749204 .0096860
+ 508735.31 .3533371 .0091685
+ 508785.09 .3641564 .0094833
+ 508835.00 .3554921 .0093093
+ 508884.81 .3667473 .0095798
+ 508934.62 .3662300 .0095717
+ 508984.44 .3580331 .0095547
+ 509034.38 .3755169 .0098661
+ 509084.19 .3695736 .0097540
+ 509134.03 .3666306 .0097576
+ 509184.00 .4025991 .0106337
+ 509233.84 .3692664 .0099280
+ 509283.72 .3678272 .0096682
+ 509333.59 .3557355 .0094219
+ 509383.56 .3617601 .0094407
+ 509433.47 .3680556 .0095429
+ 509483.34 .3746669 .0096645
+ 509533.34 .3788597 .0096885
+ 509583.28 .3555434 .0093090
+ 509633.19 .3609910 .0095255
+ 509683.12 .3705869 .0096934
+ 509733.12 .3896825 .0104030
+ 509783.09 .3585488 .0094449
+ 509833.03 .3678538 .0096163
+ 509883.09 .3860160 .0100157
+ 509933.03 .3549419 .0091154
+ 509983.00 .3814585 .0096483
+ 510033.00 .3843141 .0097198
+ 510083.06 .3573703 .0091707
+ 510133.06 .3765882 .0097198
+ 510183.06 .3753689 .0097058
+ 510233.16 .3690069 .0095586
+ 510283.19 .3843156 .0099528
+ 510333.19 .3613765 .0094209
+ 510383.22 .3540753 .0092752
+ 510433.34 .3649381 .0095176
+ 510483.41 .3571378 .0093586
+ 510533.44 .3861127 .0099464
+ 510583.59 .3748411 .0097352
+ 510633.66 .3640924 .0095433
+ 510683.75 .3654836 .0096010
+ 510733.81 .3663572 .0096591
+ 510784.00 .3744132 .0098089
+ 510834.09 .3651452 .0095580
+ 510884.22 .3640960 .0095678
+ 510934.41 .3594268 .0092581
+ 510984.53 .3734612 .0095163
+ 511034.66 .3698955 .0094473
+ 511084.78 .3683353 .0093111
+ 511135.03 .3691789 .0092750
+ 511185.16 .3784184 .0095806
+ 511235.31 .3594574 .0092800
+ 511285.59 .3820587 .0096947
+ 511335.75 .3737763 .0096469
+ 511385.94 .3668092 .0095638
+ 511436.09 .3749054 .0096955
+ 511486.41 .3675091 .0096522
+ 511536.59 .3771720 .0099811
+ 511586.81 .3611817 .0095666
+ 511637.09 .3601028 .0095285
+ 511687.34 .3736192 .0098879
+ 511737.56 .3554416 .0094127
+ 511787.78 .3651068 .0096508
+ 511838.12 .3607820 .0093381
+ 511888.38 .3610438 .0093365
+ 511938.62 .3661201 .0094463
+ 511989.00 .3709933 .0094714
+ 512039.28 .3742207 .0096023
+ 512089.56 .3802517 .0096100
+ 512139.94 .3553262 .0091141
+ 512190.22 .3680353 .0095267
+ 512240.53 .3494945 .0090371
+ 512290.84 .3813196 .0100529
+ 512341.25 .3747205 .0098640
+ 512391.59 .3688553 .0098584
+ 512441.91 .3601189 .0094677
+ 512492.34 .3905506 .0102149
+ 512542.69 .3631167 .0095009
+ 512593.06 .3625509 .0094082
+ 512643.41 .3675157 .0093749
+ 512693.88 .3807162 .0094398
+ 512744.25 .3684789 .0091279
+ 512794.62 .3712166 .0091813
+ 512845.12 .3553252 .0089193
+ 512895.53 .3752472 .0093868
+ 512945.94 .3659020 .0092981
+ 512996.34 .3645718 .0093228
+ 513046.84 .3473851 .0089989
+ 513097.28 .3730232 .0097614
+ 513147.72 .3605945 .0094344
+ 513198.25 .3942183 .0101690
+ 513248.72 .3692863 .0095692
+ 513299.16 .3751039 .0098203
+ 513349.62 .3710733 .0096087
+ 513400.22 .3651281 .0094643
+ 513450.69 .3823665 .0098468
+ 513501.19 .3553368 .0093345
+ 513551.78 .3648098 .0096229
+ 513602.28 .3788227 .0098287
+ 513652.78 .3700185 .0097494
+ 513703.31 .3652073 .0095863
+ 513753.91 .3629237 .0096635
+ 513804.44 .3604587 .0096170
+ 513855.00 .3501127 .0093750
+ 513905.62 .3630597 .0097426
+ 513956.19 .3623920 .0097932
+ 514006.75 .3595166 .0098369
+ 514057.31 .3619729 .0097952
+ 514108.00 .3684492 .0100156
+ 514158.59 .3654578 .0099391
+ 514209.19 .3694795 .0098141
+ 514259.88 .3684690 .0098612
+ 514310.47 .3731489 .0099715
+ 514361.09 .3593815 .0095577
+ 514411.72 .3617528 .0096222
+ 514462.44 .3904885 .0102340
+ 514513.09 .3560102 .0094907
+ 514563.72 .3649465 .0096479
+ 514614.47 .3784956 .0099514
+ 514665.12 .3584647 .0093801
+ 514715.81 .3537414 .0093777
+ 514766.47 .3617551 .0093488
+ 514817.25 .3723334 .0097236
+ 514867.94 .3639104 .0093881
+ 514918.66 .3762672 .0098077
+ 514969.44 .3503873 .0090797
+ 515020.16 .3857915 .0099109
+ 515070.88 .3880736 .0098453
+ 515121.69 .3753219 .0095996
+ 515172.44 .3562231 .0091658
+ 515223.19 .3719716 .0095202
+ 515273.94 .3580671 .0090527
+ 515324.78 .3890459 .0096913
+ 515375.53 .3469475 .0086942
+ 515426.31 .3656024 .0092235
+ 515477.19 .3731833 .0092672
+ 515527.97 .3467579 .0089180
+ 515578.78 .3736428 .0094994
+ 515629.59 .3552032 .0091085
+ 515680.50 .3946213 .0101754
+ 515731.31 .3791694 .0096694
+ 515782.12 .3916219 .0099056
+ 515833.06 .3679065 .0094340
+ 515883.91 .3739568 .0095924
+ 515934.75 .3659413 .0094856
+ 515985.59 .3506104 .0091134
+ 516036.56 .3790342 .0099496
+ 516087.44 .3673119 .0098179
+ 516138.31 .3684768 .0097425
+ 516189.28 .3735224 .0099402
+ 516240.19 .3883277 .0102788
+ 516291.09 .3783580 .0100187
+ 516342.00 .3690237 .0098616
+ 516393.00 .3710333 .0097196
+ 516443.94 .3884207 .0100560
+ 516494.84 .3727283 .0097421
+ 516545.88 .3717335 .0096869
+ 516596.84 .3684290 .0095291
+ 516647.78 .3552822 .0091559
+ 516698.75 .3775908 .0096099
+ 516749.81 .3634309 .0093295
+ 516800.78 .3612648 .0093724
+ 516851.78 .3777728 .0096042
+ 516902.88 .3814049 .0099804
+ 516953.84 .3654861 .0095728
+ 517004.88 .3642737 .0095653
+ 517055.88 .3553747 .0093257
+ 517107.00 .3753369 .0096193
+ 517158.03 .3596383 .0093184
+ 517209.06 .3700590 .0094980
+ 517260.19 .3725887 .0095200
+ 517311.25 .3782718 .0097306
+ 517362.31 .3669026 .0095113
+ 517413.38 .3681450 .0095655
+ 517464.56 .3763000 .0097866
+ 517515.62 .3746952 .0096538
+ 517566.72 .3694399 .0094867
+ 517617.91 .3840024 .0099192
+ 517669.03 .3580861 .0092610
+ 517720.12 .3664603 .0094376
+ 517771.25 .3704250 .0095711
+ 517822.47 .3622965 .0095197
+ 517873.59 .3633405 .0095281
+ 517924.75 .3708731 .0096581
+ 517976.00 .3745499 .0096650
+ 518027.16 .3633828 .0094340
+ 518078.31 .3568459 .0092691
+ 518129.59 .3782615 .0097519
+ 518180.78 .3639327 .0093260
+ 518231.97 .3636434 .0092299
+ 518283.16 .3722680 .0095046
+ 518334.44 .3807165 .0096823
+ 518385.66 .3793327 .0095786
+ 518436.88 .3674442 .0092231
+ 518488.19 .3746892 .0094460
+ 518539.44 .3571256 .0090388
+ 518590.69 .3633435 .0092208
+ 518641.94 .3719660 .0092731
+ 518693.28 .3630074 .0091474
+ 518744.53 .3651761 .0092197
+ 518795.81 .3731091 .0094535
+ 518847.19 .3728336 .0094230
+ 518898.47 .3630600 .0093258
+ 518949.78 .3605864 .0093052
+ 519001.06 .3729930 .0095976
+ 519052.47 .3977455 .0102037
+ 519103.78 .3670465 .0093701
+ 519155.12 .3807435 .0096212
+ 519206.56 .3754138 .0096506
+ 519257.88 .3756075 .0096643
+ 519309.25 .3784288 .0097708
+ 519360.59 .3851033 .0098898
+ 519412.06 .3717893 .0094938
+ 519463.41 .3664494 .0095447
+ 519514.81 .3607183 .0093575
+ 519566.28 .3750039 .0097705
+ 519617.69 .3649334 .0094918
+ 519669.06 .3621379 .0094014
+ 519720.50 .3709589 .0098293
+ 519772.00 .3438163 .0092024
+ 519823.44 .3728636 .0097585
+ 519874.84 .3449801 .0090108
+ 519926.38 .3561709 .0092541
+ 519977.84 .3603138 .0093861
+ 520029.28 .3776823 .0096527
+ 520080.75 .3619805 .0093251
+ 520132.31 .3725812 .0095522
+ 520183.81 .3548430 .0092794
+ 520235.28 .3547406 .0092664
+ 520286.88 .3572567 .0091824
+ 520338.38 .3688002 .0095230
+ 520389.88 .3666952 .0095924
+ 520441.41 .3802287 .0098865
+ 520493.03 .3657474 .0095389
+ 520544.56 .3673800 .0095026
+ 520596.09 .3803180 .0097662
+ 520647.72 .3686855 .0094828
+ 520699.28 .3788630 .0095793
+ 520750.84 .3854842 .0099153
+ 520802.41 .3877784 .0098118
+ 520854.09 .3761807 .0095596
+ 520905.69 .3673340 .0093527
+ 520957.25 .3586467 .0091967
+ 521008.97 .3759281 .0094980
+ 521060.56 .3796002 .0095719
+ 521112.19 .3650691 .0092638
+ 521163.81 .3665707 .0093258
+ 521215.53 .3757649 .0095507
+ 521267.19 .3647800 .0092551
+ 521318.81 .3692244 .0093952
+ 521370.56 .3706303 .0095002
+ 521422.22 .3615477 .0093618
+ 521473.91 .3771741 .0096257
+ 521525.69 .3853048 .0098183
+ 521577.38 .3805889 .0097051
+ 521629.06 .3814003 .0094760
+ 521680.75 .3617405 .0091112
+ 521732.56 .3686963 .0091568
+ 521784.28 .3647694 .0091485
+ 521836.00 .3777115 .0092719
+ 521887.81 .3745329 .0091454
+ 521939.56 .3881773 .0095229
+ 521991.31 .3670498 .0090451
+ 522043.06 .3742796 .0094391
+ 522094.91 .3697180 .0092555
+ 522146.69 .3730108 .0093666
+ 522198.47 .3705807 .0094551
+ 522250.34 .3780076 .0097460
+ 522302.16 .3668290 .0096168
+ 522353.94 .3895375 .0101009
+ 522405.75 .3730102 .0097306
+ 522457.66 .3790170 .0098752
+ 522509.50 .3659832 .0095582
+ 522561.31 .3830154 .0098629
+ 522613.25 .3662856 .0094865
+ 522665.09 .3609893 .0092701
+ 522716.94 .3773473 .0096520
+ 522768.81 .3741577 .0096314
+ 522820.78 .3585392 .0090904
+ 522872.66 .3809500 .0096593
+ 522924.53 .3652934 .0093922
+ 522976.53 .3533943 .0090758
+ 523028.44 .3493134 .0091806
+ 523080.34 .3698666 .0096169
+ 523132.25 .3765428 .0097522
+ 523184.28 .3601291 .0094783
+ 523236.22 .3611671 .0095230
+ 523288.16 .3717672 .0098422
+ 523340.19 .3688680 .0097549
+ 523392.16 .3730567 .0098077
+ 523444.12 .3763756 .0098132
+ 523496.09 .3715881 .0098471
+ 523548.16 .3618870 .0094250
+ 523600.16 .3785063 .0098150
+ 523652.12 .3744417 .0096734
+ 523704.22 .3651520 .0093879
+ 523756.25 .3756006 .0096178
+ 523808.25 .3501280 .0089855
+ 523860.28 .3595442 .0093194
+ 523912.41 .3644496 .0094201
+ 523964.44 .3527995 .0092141
+ 524016.50 .3696012 .0096628
+ 524068.66 .3443128 .0091954
+ 524120.72 .3667773 .0098398
+ 524172.78 .3535756 .0094096
+ 524224.88 .3604038 .0094606
+ 524277.06 .3650159 .0094125
+ 524329.12 .3628259 .0092567
+ 524381.25 .3688236 .0094054
+ 524433.44 .3915363 .0098411
+ 524485.56 .3665208 .0093710
+ 524537.69 .3649600 .0091809
+ 524589.94 .3776960 .0095422
+ 524642.06 .3562212 .0093243
+ 524694.19 .3683090 .0094331
+ 524746.38 .3733992 .0096179
+ 524798.62 .3645022 .0094824
+ 524850.81 .3615071 .0093412
+ 524903.00 .3751395 .0096578
+ 524955.25 .3594143 .0092541
+ 525007.50 .3688999 .0095339
+ 525059.69 .3536231 .0093151
+ 525111.88 .3701637 .0095398
+ 525164.19 .3607512 .0093450
+ 525216.44 .3446220 .0089805
+ 525268.69 .3647534 .0094160
+ 525321.00 .3647230 .0095350
+ 525373.25 .3614222 .0095619
+ 525425.50 .3639189 .0094960
+ 525477.75 .3693486 .0095673
+ 525530.12 .3741445 .0097038
+ 525582.44 .3809323 .0099227
+ 525634.69 .3705842 .0095996
+ 525687.12 .3767153 .0097101
+ 525739.44 .3656193 .0094562
+ 525791.75 .3818639 .0098216
+ 525844.06 .3490755 .0089443
+ 525896.50 .3660842 .0092652
+ 525948.81 .3566418 .0091712
+ 526001.12 .3553456 .0090285
+ 526053.62 .3550901 .0091014
+ 526105.94 .3828960 .0096547
+ 526158.31 .3627526 .0092545
+ 526210.69 .3584600 .0091686
+ 526263.19 .3591891 .0091391
+ 526315.56 .3624839 .0093101
+ 526368.00 .3491658 .0090843
+ 526420.50 .3646280 .0095381
+ 526472.88 .3577166 .0093116
+ 526525.31 .3744528 .0097837
+ 526577.75 .3760467 .0097747
+ 526630.25 .3561627 .0092057
+ 526682.75 .3540342 .0091028
+ 526735.19 .3520227 .0089481
+ 526787.75 .3844097 .0096287
+ 526840.19 .3719901 .0094270
+ 526892.69 .3682132 .0092821
+ 526945.19 .3608250 .0090927
+ 526997.75 .3789650 .0095108
+ 527050.25 .3604548 .0092275
+ 527102.75 .3562740 .0092650
+ 527155.38 .3671022 .0095372
+ 527207.94 .3688357 .0097622
+ 527260.44 .3531955 .0094752
+ 527313.00 .3584964 .0095802
+ 527365.62 .3648411 .0096219
+ 527418.19 .3612411 .0096547
+ 527470.75 .3651359 .0095821
+ 527523.44 .3581637 .0095443
+ 527576.00 .3644705 .0096538
+ 527628.56 .3618917 .0095974
+ 527681.19 .3400029 .0090634
+ 527733.88 .3787027 .0099103
+ 527786.50 .3660497 .0096620
+ 527839.12 .3536505 .0092248
+ 527891.81 .3683276 .0095971
+ 527944.44 .3523418 .0091553
+ 527997.12 .3430608 .0090609
+ 528049.88 .3684287 .0094922
+ 528102.50 .3619852 .0094281
+ 528155.19 .3579660 .0094390
+ 528207.88 .3443046 .0091098
+ 528260.62 .3681793 .0096045
+ 528313.31 .3704155 .0096379
+ 528366.00 .3553087 .0093297
+ 528418.81 .3669447 .0094467
+ 528471.56 .3579877 .0092029
+ 528524.25 .3775074 .0096550
+ 528577.00 .3471229 .0088905
+ 528629.81 .3597999 .0091284
+ 528682.56 .3677485 .0092972
+ 528735.31 .3553629 .0090672
+ 528788.19 .3574752 .0089924
+ 528840.94 .3662433 .0092555
+ 528893.75 .3616270 .0091763
+ 528946.50 .3691904 .0093701
+ 528999.38 .3660609 .0092663
+ 529052.19 .3634320 .0092585
+ 529105.00 .3531668 .0090355
+ 529157.94 .3747313 .0096336
+ 529210.75 .3361149 .0086022
+ 529263.56 .3552561 .0092239
+ 529316.44 .3477893 .0089700
+ 529369.38 .3573334 .0093450
+ 529422.19 .3550592 .0093080
+ 529475.06 .3386256 .0089382
+ 529528.06 .3418113 .0089514
+ 529580.94 .3496695 .0090482
+ 529633.81 .3407245 .0087913
+ 529686.69 .3621106 .0094339
+ 529739.69 .3421844 .0088676
+ 529792.62 .3576978 .0091622
+ 529845.56 .3405935 .0089330
+ 529898.56 .3600376 .0093230
+ 529951.50 .3541678 .0092174
+ 530004.44 .3483306 .0090990
+ 530057.38 .3332066 .0088419
+ 530110.44 .3535228 .0091840
+ 530163.44 .3453091 .0090619
+ 530216.38 .3498900 .0091182
+ 530269.50 .3343697 .0087328
+ 530322.44 .3379590 .0088132
+ 530375.44 .3316405 .0088008
+ 530428.44 .3364916 .0088444
+ 530481.56 .3343903 .0089090
+ 530534.62 .3286331 .0086737
+ 530587.62 .3354833 .0088894
+ 530640.75 .3355676 .0089480
+ 530693.81 .3403513 .0089469
+ 530746.88 .3326164 .0086582
+ 530799.94 .3342908 .0087570
+ 530853.12 .3175291 .0083169
+ 530906.19 .3181568 .0083604
+ 530959.25 .3136102 .0082387
+ 531012.44 .3223847 .0085026
+ 531065.56 .3018964 .0079639
+ 531118.69 .3258722 .0086052
+ 531171.88 .2993150 .0080523
+ 531225.00 .2987202 .0081735
+ 531278.12 .2823021 .0077219
+ 531331.31 .2929048 .0080041
+ 531384.56 .2792370 .0077246
+ 531437.69 .2761201 .0076987
+ 531490.88 .2775183 .0076954
+ 531544.12 .2636326 .0075529
+ 531597.31 .2488784 .0072404
+ 531650.50 .2430121 .0071410
+ 531703.69 .2282133 .0067802
+ 531757.00 .2374501 .0070429
+ 531810.25 .2140082 .0065086
+ 531863.44 .2057246 .0064440
+ 531916.75 .1848428 .0060826
+ 531970.00 .1725782 .0058629
+ 532023.25 .1470505 .0054215
+ 532076.50 .1418417 .0053042
+ 532129.88 .1146641 .0046704
+ 532183.12 .1024135 .0043792
+ 532236.44 .0681946 .0034669
+ 532289.81 .0634394 .0033355
+ 532343.12 .0478275 .0028675
+ 532396.38 .0357675 .0024772
+ 532449.69 .0255647 .0021051
+ 532503.12 .0185779 .0018493
+ 532556.44 .0110239 .0015030
+ 532609.75 .0117147 .0015591
+ 532663.25 .0089606 .0013914
+ 532716.56 .0102679 .0014748
+ 532769.94 .0145099 .0016411
+ 532823.31 .0174755 .0018152
+ 532876.75 .0229593 .0019909
+ 532930.12 .0368278 .0024406
+ 532983.56 .0424724 .0026292
+ 533037.06 .0669925 .0033051
+ 533090.44 .0779747 .0036156
+ 533143.88 .1004117 .0041362
+ 533197.25 .1145761 .0044443
+ 533250.81 .1366262 .0050211
+ 533304.25 .1509886 .0054219
+ 533357.69 .1772906 .0059494
+ 533411.25 .1892594 .0062352
+ 533464.69 .1956617 .0062871
+ 533518.19 .2040590 .0065189
+ 533571.69 .2399969 .0071902
+ 533625.25 .2346317 .0070158
+ 533678.75 .2499372 .0072822
+ 533732.25 .2594316 .0075278
+ 533785.88 .2648053 .0077327
+ 533839.38 .2683793 .0077188
+ 533892.88 .2796842 .0079953
+ 533946.44 .2800452 .0078632
+ 534000.06 .2866148 .0079314
+ 534053.62 .3041609 .0083190
+ 534107.19 .3001114 .0081517
+ 534160.88 .3114069 .0083254
+ 534214.44 .3295242 .0085967
+ 534268.00 .3140927 .0081697
+ 534321.69 .3154710 .0082372
+ 534375.31 .3293076 .0085291
+ 534428.88 .3203757 .0083002
+ 534482.50 .3206102 .0082416
+ 534536.25 .3136790 .0081805
+ 534589.88 .3330568 .0086161
+ 534643.50 .3370397 .0086016
+ 534697.25 .3321576 .0084547
+ 534750.94 .3391706 .0085710
+ 534804.56 .3325268 .0084466
+ 534858.25 .3380272 .0085890
+ 534912.06 .3330682 .0085014
+ 534965.75 .3414080 .0086292
+ 535019.44 .3357776 .0086009
+ 535073.25 .3489042 .0089373
+ 535126.94 .3471844 .0088059
+ 535180.62 .3387446 .0086890
+ 535234.38 .3371409 .0087059
+ 535288.25 .3548960 .0089825
+ 535341.94 .3513222 .0088983
+ 535395.69 .3577981 .0089478
+ 535449.56 .3372008 .0084916
+ 535503.38 .3483341 .0086843
+ 535557.12 .3578650 .0088727
+ 535610.94 .3455754 .0084816
+ 535664.81 .3598798 .0089492
+ 535718.62 .3497579 .0086710
+ 535772.44 .3397966 .0085347
+ 535826.31 .3487525 .0087239
+ 535880.19 .3553795 .0089614
+ 535934.00 .3436148 .0089323
+ 535987.81 .3622506 .0093640
+ 536041.81 .3467987 .0090496
+ 536095.62 .3630759 .0094579
+ 536149.50 .3565912 .0093938
+ 536203.50 .3549355 .0092783
+ 536257.38 .3544076 .0093761
+ 536311.25 .3623604 .0093907
+ 536365.12 .3558397 .0093143
+ 536419.19 .3519529 .0091432
+ 536473.06 .3495746 .0090795
+ 536527.00 .3680406 .0094687
+ 536581.06 .3491799 .0090219
+ 536635.00 .3635421 .0092729
+ 536688.94 .3601559 .0092314
+ 536742.88 .3576426 .0090507
+ 536796.94 .3668254 .0092189
+ 536850.94 .3560874 .0089264
+ 536904.88 .3611137 .0090799
+ 536959.00 .3522355 .0087709
+ 537013.00 .3711731 .0093151
+ 537067.00 .3633590 .0092030
+ 537121.00 .3611506 .0090952
+ 537175.12 .3585797 .0089867
+ 537229.12 .3552103 .0088675
+ 537283.19 .3509778 .0088613
+ 537337.31 .3580633 .0090135
+ 537391.38 .3467619 .0088325
+ 537445.44 .3431585 .0086641
+ 537499.50 .3537797 .0088148
+ 537553.69 .3503877 .0087012
+ 537607.81 .3455386 .0085901
+ 537661.88 .3718230 .0091634
+ 537716.06 .3626041 .0089734
+ 537770.19 .3549144 .0088297
+ 537824.31 .3658247 .0090891
+ 537878.56 .3660949 .0092819
+ 537932.69 .3578366 .0092745
+ 537986.81 .3674025 .0095544
+ 538040.94 .3438708 .0091752
+ 538095.25 .3611415 .0095820
+ 538149.38 .3633482 .0096517
+ 538203.56 .3735134 .0097281
+ 538257.88 .3574085 .0092325
+ 538312.06 .3523505 .0090034
+ 538366.25 .3460216 .0088101
+ 538420.44 .3559417 .0089907
+ 538474.81 .3586741 .0091863
+ 538529.00 .3535897 .0090318
+ 538583.25 .3449756 .0089119
+ 538637.56 .3663132 .0094292
+ 538691.81 .3620621 .0092877
+ 538746.06 .3598263 .0093514
+ 538800.38 .3455743 .0090272
+ 538854.75 .3505161 .0090875
+ 538909.00 .3547432 .0091300
+ 538963.31 .3614259 .0093560
+ 539017.69 .3594254 .0091008
+ 539072.00 .3611117 .0092418
+ 539126.31 .3651628 .0093371
+ 539180.62 .3600425 .0091944
+ 539235.06 .3730773 .0096786
+ 539289.44 .3669796 .0095512
+ 539343.75 .3633565 .0093826
+ 539398.25 .3641149 .0095807
+ 539452.62 .3415382 .0090073
+ 539507.00 .3492478 .0092629
+ 539561.38 .3483741 .0092660
+ 539615.88 .3377285 .0090100
+ 539670.25 .3501037 .0091578
+ 539724.62 .3601838 .0091895
+ 539779.19 .3585578 .0091200
+ 539833.56 .3509354 .0087939
+ 539888.00 .3596932 .0090569
+ 539942.44 .3614601 .0089822
+ 539997.00 .3579491 .0089819
+ 540051.44 .3645787 .0090453
+ 540105.94 .3399790 .0086038
+ 540160.50 .3469949 .0087008
+ 540215.00 .3564490 .0090726
+ 540269.50 .3583209 .0090856
+ 540323.94 .3603700 .0091583
+ 540378.56 .3414692 .0088233
+ 540433.06 .3439701 .0089243
+ 540487.62 .3654770 .0093750
+ 540542.25 .3561596 .0091116
+ 540596.75 .3561766 .0090390
+ 540651.31 .3435287 .0088289
+ 540705.88 .3494115 .0090860
+ 540760.56 .3474702 .0090492
+ 540815.12 .3620777 .0093014
+ 540869.69 .3620740 .0092843
+ 540924.38 .3537959 .0089997
+ 540979.00 .3602390 .0091874
+ 541033.56 .3536248 .0090218
+ 541088.31 .3540513 .0089984
+ 541142.94 .3602438 .0091545
+ 541197.56 .3616977 .0092354
+ 541252.19 .3471358 .0088545
+ 541306.94 .3512508 .0089975
+ 541361.56 .3515691 .0090238
+ 541416.25 .3403223 .0088105
+ 541471.00 .3566388 .0090985
+ 541525.69 .3585852 .0091336
+ 541580.38 .3634987 .0091783
+ 541635.06 .3638084 .0092495
+ 541689.88 .3573121 .0090104
+ 541744.62 .3624226 .0091031
+ 541799.31 .3616116 .0090630
+ 541854.12 .3499611 .0088966
+ 541908.88 .3658875 .0092940
+ 541963.62 .3738773 .0095046
+ 542018.38 .3573101 .0091522
+ 542073.25 .3574438 .0091192
+ 542128.00 .3437361 .0089020
+ 542182.81 .3698864 .0096016
+ 542237.69 .3446202 .0089348
+ 542292.50 .3613522 .0092491
+ 542347.31 .3521031 .0090513
+ 542402.12 .3574052 .0090997
+ 542457.00 .3575755 .0090703
+ 542511.88 .3377594 .0085323
+ 542566.69 .3535852 .0088989
+ 542621.62 .3506382 .0088724
+ 542676.50 .3381674 .0085914
+ 542731.38 .3625624 .0092284
+ 542786.19 .3550309 .0089705
+ 542841.19 .3600581 .0092023
+ 542896.06 .3496646 .0087271
+ 542951.00 .3429370 .0084840
+ 543006.00 .3591371 .0088581
+ 543060.88 .3483426 .0085557
+ 543115.81 .3449928 .0084807
+ 543170.75 .3518832 .0086443
+ 543225.81 .3465676 .0084532
+ 543280.75 .3393566 .0083408
+ 543335.69 .3428569 .0084865
+ 543390.75 .3517980 .0086745
+ 543445.69 .3690569 .0092340
+ 543500.69 .3511634 .0088144
+ 543555.69 .3392741 .0086229
+ 543610.75 .3645151 .0091533
+ 543665.81 .3473766 .0087623
+ 543720.81 .3587930 .0089669
+ 543775.94 .3358733 .0084606
+ 543830.94 .3614762 .0089742
+ 543886.00 .3621472 .0089889
+ 543941.00 .3341642 .0082873
+ 543996.19 .3401774 .0085648
+ 544051.25 .3530334 .0087523
+ 544106.31 .3323635 .0084331
+ 544161.50 .3435776 .0086628
+ 544216.56 .3646589 .0091452
+ 544271.69 .3515288 .0089295
+ 544326.81 .3383673 .0085869
+ 544382.00 .3549843 .0088970
+ 544437.12 .3655339 .0093484
+ 544492.25 .3366213 .0085172
+ 544547.50 .3369947 .0085580
+ 544602.62 .3610630 .0091105
+ 544657.81 .3436529 .0087087
+ 544713.06 .3455408 .0087197
+ 544768.25 .3541988 .0088823
+ 544823.38 .3402460 .0086275
+ 544878.56 .3475272 .0088991
+ 544933.88 .3380582 .0086646
+ 544989.06 .3427931 .0087919
+ 545044.31 .3509158 .0090941
+ 545099.62 .3397421 .0088453
+ 545154.88 .3367215 .0085973
+ 545210.12 .3394134 .0087494
+ 545265.31 .3449012 .0088140
+ 545320.69 .3530323 .0087623
+ 545375.94 .3322385 .0085028
+ 545431.25 .3403773 .0086053
+ 545486.62 .3383589 .0084218
+ 545541.94 .3398015 .0084893
+ 545597.19 .3380010 .0085446
+ 545652.50 .3334536 .0084278
+ 545707.94 .3359514 .0084039
+ 545763.25 .3362747 .0084760
+ 545818.56 .3455888 .0087020
+ 545874.00 .3509918 .0089422
+ 545929.38 .3318776 .0085966
+ 545984.75 .3236034 .0082689
+ 546040.06 .3297482 .0083583
+ 546095.56 .3518096 .0088181
+ 546150.94 .3444359 .0087357
+ 546206.31 .3483036 .0089190
+ 546261.81 .3235059 .0083595
+ 546317.25 .3308032 .0085040
+ 546372.69 .3498835 .0089762
+ 546428.06 .3376608 .0086887
+ 546483.62 .3505121 .0090288
+ 546539.06 .3340737 .0086842
+ 546594.50 .3388435 .0088347
+ 546650.06 .3225371 .0085244
+ 546705.50 .3246492 .0083710
+ 546761.00 .3438775 .0088505
+ 546816.50 .3179608 .0082680
+ 546872.06 .3327572 .0086106
+ 546927.56 .3298394 .0083868
+ 546983.06 .3275087 .0083498
+ 547038.69 .3248100 .0082143
+ 547094.25 .3305401 .0083665
+ 547149.75 .3234487 .0082729
+ 547205.31 .3390385 .0085965
+ 547260.94 .3485212 .0086396
+ 547316.50 .3354934 .0084561
+ 547372.06 .3356108 .0084939
+ 547427.75 .3490739 .0088449
+ 547483.38 .3121124 .0081962
+ 547538.94 .3357377 .0087110
+ 547594.56 .3375282 .0087715
+ 547650.25 .3293577 .0086329
+ 547705.88 .3215335 .0083809
+ 547761.50 .3300042 .0085687
+ 547817.25 .3198463 .0083808
+ 547872.88 .3128558 .0081266
+ 547928.50 .3245888 .0082605
+ 547984.31 .3236111 .0084299
+ 548039.94 .3124925 .0081084
+ 548095.62 .3261971 .0084816
+ 548151.31 .3175950 .0081522
+ 548207.12 .3246561 .0085104
+ 548262.81 .3178681 .0081955
+ 548318.56 .3236041 .0082655
+ 548374.38 .3227744 .0083035
+ 548430.06 .3099978 .0080010
+ 548485.81 .3310679 .0085336
+ 548541.56 .3358705 .0084982
+ 548597.44 .3221969 .0082284
+ 548653.19 .3296525 .0084762
+ 548708.94 .3188460 .0081639
+ 548764.88 .3206373 .0080425
+ 548820.62 .3291027 .0081859
+ 548876.44 .3307359 .0083878
+ 548932.25 .3119971 .0080528
+ 548988.12 .3094471 .0079896
+ 549044.00 .3127004 .0081307
+ 549099.81 .3139910 .0082045
+ 549155.75 .3215626 .0082703
+ 549211.62 .3126365 .0080687
+ 549267.44 .3308261 .0085029
+ 549323.31 .3058367 .0079378
+ 549379.31 .3081447 .0079623
+ 549435.19 .3171919 .0082158
+ 549491.06 .3193554 .0082584
+ 549547.06 .2983521 .0079056
+ 549603.00 .3139286 .0082485
+ 549658.88 .3044972 .0080441
+ 549714.81 .3045102 .0081326
+ 549770.88 .3171946 .0085775
+ 549826.81 .2959264 .0080093
+ 549882.75 .3194274 .0085677
+ 549938.81 .3141896 .0084522
+ 549994.75 .3102307 .0084556
+ 550050.75 .3066388 .0081839
+ 550106.75 .3003629 .0080639
+ 550162.81 .3164198 .0084967
+ 550218.81 .3176495 .0084998
+ 550274.81 .3019025 .0080194
+ 550330.94 .2957402 .0080347
+ 550387.00 .2894348 .0077524
+ 550443.00 .2972099 .0079276
+ 550499.06 .3058941 .0082009
+ 550555.25 .3120038 .0082959
+ 550611.31 .2902514 .0078249
+ 550667.38 .3033167 .0079985
+ 550723.56 .3088244 .0081170
+ 550779.62 .3051335 .0080472
+ 550835.69 .2953958 .0077782
+ 550891.81 .2945586 .0076580
+ 550948.06 .3050805 .0079113
+ 551004.19 .2978421 .0077472
+ 551060.31 .2885881 .0075507
+ 551116.56 .2869220 .0075017
+ 551172.69 .3014306 .0078918
+ 551228.81 .3040095 .0078805
+ 551285.12 .2801384 .0074352
+ 551341.25 .3063438 .0079217
+ 551397.44 .2874043 .0075668
+ 551453.62 .2819922 .0074977
+ 551509.94 .2770753 .0074083
+ 551566.19 .2837551 .0074778
+ 551622.38 .2839632 .0074964
+ 551678.69 .2748837 .0073315
+ 551734.94 .2904423 .0076458
+ 551791.19 .2895964 .0077022
+ 551847.44 .2799893 .0074915
+ 551903.81 .2838551 .0075284
+ 551960.06 .2775271 .0074313
+ 552016.31 .2653856 .0071723
+ 552072.75 .2745652 .0075091
+ 552129.00 .2793746 .0076443
+ 552185.31 .2594816 .0071975
+ 552241.62 .2489735 .0069852
+ 552298.06 .2655880 .0074149
+ 552354.38 .2706066 .0075209
+ 552410.69 .2579300 .0072096
+ 552467.19 .2546997 .0071681
+ 552523.50 .2586820 .0073154
+ 552579.88 .2587917 .0072197
+ 552636.25 .2474083 .0070585
+ 552692.75 .2590475 .0073559
+ 552749.12 .2564607 .0072372
+ 552805.50 .2527647 .0072035
+ 552862.00 .2549729 .0072615
+ 552918.44 .2422023 .0070243
+ 552974.88 .2572325 .0073942
+ 553031.31 .2478842 .0070761
+ 553087.81 .2443152 .0069774
+ 553144.31 .2492470 .0069901
+ 553200.75 .2446934 .0068896
+ 553257.31 .2491038 .0069080
+ 553313.81 .2385419 .0066073
+ 553370.25 .2423658 .0067508
+ 553426.75 .2399779 .0067930
+ 553483.38 .2413193 .0067489
+ 553539.88 .2464071 .0068649
+ 553596.38 .2399736 .0066419
+ 553653.06 .2513820 .0068401
+ 553709.56 .2580780 .0070962
+ 553766.12 .2537529 .0068666
+ 553822.69 .2483169 .0067778
+ 553879.31 .2464335 .0066549
+ 553935.88 .2486901 .0067456
+ 553992.50 .2414223 .0065746
+ 554049.19 .2410473 .0066099
+ 554105.75 .2431888 .0066542
+ 554162.38 .2368809 .0065835
+ 554219.00 .2515712 .0069290
+ 554275.69 .2307633 .0064305
+ 554332.31 .2404240 .0066616
+ 554389.00 .2379326 .0066006
+ 554445.75 .2286198 .0064235
+ 554502.38 .2392268 .0066435
+ 554559.06 .2399329 .0065942
+ 554615.75 .2445613 .0067710
+ 554672.50 .2502334 .0069013
+ 554729.19 .2257623 .0063905
+ 554785.94 .2272509 .0064089
+ 554842.75 .2311433 .0066141
+ 554899.44 .2324480 .0066960
+ 554956.19 .2267351 .0064896
+ 555013.00 .2352782 .0067198
+ 555069.75 .2263891 .0065364
+ 555126.50 .2467788 .0068843
+ 555183.25 .2313294 .0065438
+ 555240.12 .2120616 .0060929
+ 555296.94 .2305538 .0064418
+ 555353.69 .2155237 .0060764
+ 555410.62 .2340000 .0064673
+ 555467.44 .2262941 .0062784
+ 555524.25 .2282496 .0064894
+ 555581.06 .2232884 .0064289
+ 555638.00 .2213544 .0064237
+ 555694.81 .2159184 .0063525
+ 555751.69 .2241658 .0065324
+ 555808.62 .2249786 .0066082
+ 555865.50 .2174871 .0064602
+ 555922.38 .2163320 .0064693
+ 555979.25 .2014636 .0061082
+ 556036.25 .2027112 .0062520
+ 556093.12 .2124549 .0063506
+ 556150.06 .2091542 .0062804
+ 556207.06 .2146856 .0063639
+ 556264.00 .2017151 .0060981
+ 556320.94 .2191988 .0065559
+ 556377.88 .2019794 .0060824
+ 556434.94 .2036007 .0061855
+ 556491.94 .1984792 .0061269
+ 556548.88 .2015084 .0061583
+ 556606.00 .2066109 .0062107
+ 556662.94 .2029137 .0061348
+ 556719.94 .1928855 .0058185
+ 556776.94 .1872668 .0056717
+ 556834.06 .1978303 .0059003
+ 556891.12 .1910379 .0057918
+ 556948.12 .1893932 .0058357
+ 557005.31 .1898596 .0057577
+ 557062.31 .1864548 .0056778
+ 557119.38 .1919953 .0058671
+ 557176.44 .1854838 .0057612
+ 557233.62 .1887710 .0058101
+ 557290.75 .1823364 .0056728
+ 557347.81 .1832868 .0056746
+ 557405.00 .1848426 .0056810
+ 557462.12 .1831980 .0056756
+ 557519.25 .1707919 .0054115
+ 557576.38 .1751517 .0054706
+ 557633.62 .1713377 .0054035
+ 557690.75 .1681181 .0052990
+ 557747.94 .1638964 .0053096
+ 557805.19 .1804516 .0057114
+ 557862.38 .1612604 .0052280
+ 557919.56 .1710167 .0054749
+ 557976.75 .1766655 .0056608
+ 558034.06 .1649523 .0053042
+ 558091.25 .1617611 .0053277
+ 558148.50 .1521740 .0050849
+ 558205.81 .1643877 .0054467
+ 558263.06 .1623881 .0053551
+ 558320.25 .1633437 .0054458
+ 558377.62 .1531846 .0052081
+ 558434.88 .1486778 .0050351
+ 558492.19 .1444417 .0049600
+ 558549.44 .1469579 .0049894
+ 558606.81 .1514274 .0051612
+ 558664.12 .1485430 .0051663
+ 558721.44 .1493609 .0052305
+ 558778.88 .1412292 .0051529
+ 558836.19 .1363707 .0050244
+ 558893.50 .1403873 .0050975
+ 558950.88 .1394202 .0051248
+ 559008.31 .1289335 .0048479
+ 559065.69 .1427898 .0051986
+ 559123.06 .1317268 .0048675
+ 559180.50 .1285118 .0047784
+ 559237.88 .1262363 .0048049
+ 559295.31 .1212153 .0046621
+ 559352.69 .1233533 .0046284
+ 559410.19 .1267701 .0047430
+ 559467.62 .1205705 .0045686
+ 559525.06 .1126636 .0043751
+ 559582.62 .1185877 .0043794
+ 559640.06 .1239395 .0045887
+ 559697.50 .1115137 .0042812
+ 559754.94 .1118642 .0042825
+ 559812.56 .1069544 .0042092
+ 559870.00 .1104723 .0042888
+ 559927.50 .1036051 .0040285
+ 559985.12 .1012553 .0039331
+ 560042.62 .1031446 .0040016
+ 560100.12 .0978853 .0038227
+ 560157.69 .1017796 .0039651
+ 560215.31 .1015198 .0039190
+ 560272.88 .0944445 .0037333
+ 560330.44 .0948098 .0037741
+ 560388.06 .1006370 .0039716
+ 560445.62 .0959779 .0038796
+ 560503.25 .0873286 .0036574
+ 560560.81 .0898947 .0037775
+ 560618.50 .0834331 .0035784
+ 560676.12 .0824872 .0035817
+ 560733.75 .0828419 .0036190
+ 560791.50 .0836490 .0036114
+ 560849.12 .0809012 .0035292
+ 560906.75 .0808002 .0035726
+ 560964.38 .0736618 .0033604
+ 561022.19 .0750278 .0034135
+ 561079.81 .0797661 .0035862
+ 561137.50 .0696449 .0032625
+ 561195.31 .0721619 .0033767
+ 561253.00 .0740219 .0034417
+ 561310.69 .0677094 .0032955
+ 561368.44 .0659984 .0032568
+ 561426.25 .0618001 .0031899
+ 561484.00 .0680944 .0034064
+ 561541.69 .0611100 .0031991
+ 561599.56 .0605206 .0032149
+ 561657.31 .0585176 .0031776
+ 561715.06 .0562238 .0030810
+ 561772.88 .0568745 .0030724
+ 561830.75 .0537369 .0029719
+ 561888.56 .0494381 .0027764
+ 561946.38 .0506522 .0028028
+ 562004.25 .0532916 .0029022
+ 562062.06 .0492649 .0027947
+ 562119.94 .0539402 .0029469
+ 562177.88 .0488264 .0027649
+ 562235.69 .0451550 .0026925
+ 562293.56 .0446574 .0027204
+ 562351.44 .0434458 .0026954
+ 562409.44 .0442580 .0027092
+ 562467.31 .0433045 .0027155
+ 562525.19 .0376960 .0025249
+ 562583.19 .0396519 .0025903
+ 562641.12 .0393065 .0025929
+ 562699.00 .0406199 .0026450
+ 562756.94 .0334844 .0023903
+ 562815.00 .0338139 .0024202
+ 562872.94 .0327980 .0023236
+ 562930.88 .0350131 .0023806
+ 562988.94 .0296109 .0022159
+ 563046.94 .0330595 .0023317
+ 563104.88 .0331647 .0023073
+ 563162.88 .0307885 .0022148
+ 563221.00 .0293531 .0020552
+ 563279.00 .0291313 .0021512
+ 563337.00 .0245460 .0019344
+ 563395.19 .0327143 .0022206
+ 563453.19 .0289165 .0020977
+ 563511.25 .0248465 .0019701
+ 563569.31 .0270077 .0020839
+ 563627.44 .0279175 .0021435
+ 563685.50 .0259589 .0020910
+ 563743.62 .0241619 .0020058
+ 563801.81 .0236086 .0020118
+ 563859.88 .0219470 .0019351
+ 563918.00 .0268451 .0021190
+ 563976.12 .0232282 .0019332
+ 564034.38 .0217294 .0019086
+ 564092.50 .0206695 .0018142
+ 564150.62 .0189775 .0017838
+ 564208.88 .0203318 .0018382
+ 564267.06 .0174926 .0017307
+ 564325.19 .0143330 .0016006
+ 564383.38 .0166750 .0016960
+ 564441.69 .0166469 .0016850
+ 564499.88 .0184016 .0017972
+ 564558.06 .0166273 .0016750
+ 564616.44 .0198236 .0017847
+ 564674.62 .0154087 .0016560
+ 564732.88 .0166955 .0016900
+ 564791.12 .0145507 .0015887
+ 564849.50 .0168653 .0017409
+ 564907.75 .0171260 .0017340
+ 564966.00 .0150268 .0016233
+ 565024.38 .0114792 .0014570
+ 565082.69 .0150291 .0016148
+ 565140.94 .0147804 .0016230
+ 565199.25 .0144005 .0015721
+ 565257.69 .0133039 .0015109
+ 565316.00 .0146999 .0016140
+ 565374.31 .0160658 .0016657
+ 565432.81 .0135211 .0015640
+ 565491.12 .0140510 .0015870
+ 565549.50 .0097665 .0013875
+ 565608.00 .0142022 .0016138
+ 565666.38 .0130759 .0015608
+ 565724.75 .0140655 .0015886
+ 565783.12 .0130861 .0015519
+ 565841.62 .0095773 .0013856
+ 565900.06 .0121814 .0015137
+ 565958.50 .0107173 .0014349
+ 566017.00 .0124224 .0015775
+ 566075.44 .0117672 .0015161
+ 566133.94 .0121222 .0015621
+ 566192.38 .0139769 .0016071
+ 566250.94 .0108127 .0015099
+ 566309.44 .0151314 .0016903
+ 566367.88 .0110419 .0014907
+ 566426.50 .0146882 .0016794
+ 566485.00 .0125541 .0015493
+ 566543.50 .0144667 .0016247
+ 566602.06 .0159229 .0017209
+ 566660.69 .0134390 .0015737
+ 566719.25 .0132542 .0015422
+ 566777.75 .0128628 .0015251
+ 566836.44 .0138043 .0015496
+ 566895.00 .0114197 .0014599
+ 566953.56 .0124522 .0014856
+ 567012.19 .0130323 .0015256
+ 567070.88 .0127581 .0015125
+ 567129.50 .0154590 .0016100
+ 567188.06 .0145330 .0015864
+ 567246.81 .0154064 .0016045
+ 567305.44 .0130349 .0015070
+ 567364.06 .0170319 .0016765
+ 567422.75 .0165668 .0016302
+ 567481.50 .0175607 .0016839
+ 567540.19 .0170410 .0016699
+ 567598.88 .0157093 .0016120
+ 567657.62 .0181972 .0017022
+ 567716.31 .0166362 .0016522
+ 567775.06 .0194518 .0018136
+ 567833.75 .0170570 .0017184
+ 567892.56 .0185620 .0017585
+ 567951.31 .0185154 .0017843
+ 568010.06 .0163023 .0016735
+ 568068.94 .0214031 .0018723
+ 568127.69 .0196438 .0017955
+ 568186.44 .0194718 .0017936
+ 568245.19 .0261010 .0020351
+ 568304.12 .0234296 .0019373
+ 568362.88 .0192862 .0017834
+ 568421.69 .0250101 .0020128
+ 568480.62 .0209867 .0018487
+ 568539.44 .0251316 .0020045
+ 568598.31 .0223459 .0019086
+ 568657.12 .0214467 .0018762
+ 568716.06 .0269353 .0021135
+ 568774.94 .0249228 .0019875
+ 568833.81 .0279740 .0021415
+ 568892.81 .0255351 .0020311
+ 568951.69 .0283032 .0021672
+ 569010.56 .0289047 .0021903
+ 569069.56 .0303132 .0022062
+ 569128.50 .0302694 .0021867
+ 569187.44 .0273055 .0021127
+ 569246.38 .0297251 .0021518
+ 569305.44 .0307811 .0021669
+ 569364.38 .0325583 .0022286
+ 569423.31 .0338682 .0022905
+ 569482.38 .0317120 .0022444
+ 569541.38 .0341202 .0022837
+ 569600.38 .0337589 .0022977
+ 569659.38 .0411007 .0025915
+ 569718.50 .0341766 .0023576
+ 569777.50 .0377904 .0024896
+ 569836.50 .0429949 .0026755
+ 569895.62 .0341608 .0023885
+ 569954.69 .0368925 .0024639
+ 570013.75 .0425665 .0025974
+ 570072.81 .0397702 .0024869
+ 570132.00 .0402146 .0025155
+ 570191.06 .0454369 .0026617
+ 570250.12 .0422882 .0025888
+ 570309.38 .0474953 .0027023
+ 570368.44 .0535074 .0028602
+ 570427.56 .0444587 .0026108
+ 570486.69 .0494872 .0027241
+ 570545.94 .0531465 .0027897
+ 570605.12 .0500910 .0027321
+ 570664.25 .0535471 .0028699
+ 570723.50 .0538248 .0028161
+ 570782.69 .0538784 .0028622
+ 570841.88 .0519777 .0028160
+ 570901.06 .0538946 .0028855
+ 570960.38 .0513157 .0028443
+ 571019.56 .0608212 .0031479
+ 571078.81 .0590343 .0030738
+ 571138.12 .0578924 .0030456
+ 571197.38 .0593088 .0030588
+ 571256.62 .0613486 .0031023
+ 571315.88 .0659589 .0032331
+ 571375.25 .0639403 .0031603
+ 571434.50 .0655539 .0031951
+ 571493.81 .0618370 .0030651
+ 571553.19 .0701627 .0033570
+ 571612.50 .0681009 .0032736
+ 571671.81 .0698036 .0033154
+ 571731.12 .0671243 .0032046
+ 571790.56 .0681243 .0032952
+ 571849.88 .0671567 .0032563
+ 571909.25 .0697413 .0032731
+ 571968.69 .0802290 .0035855
+ 572028.06 .0747910 .0034656
+ 572087.44 .0783317 .0035364
+ 572146.81 .0749633 .0034099
+ 572206.31 .0802107 .0035027
+ 572265.75 .0776015 .0034860
+ 572325.12 .0882499 .0037263
+ 572384.69 .0834480 .0036772
+ 572444.12 .0833979 .0036290
+ 572503.56 .0859847 .0036881
+ 572563.00 .0824732 .0036074
+ 572622.56 .0901176 .0037783
+ 572682.00 .0969397 .0039372
+ 572741.50 .0888509 .0037303
+ 572801.06 .0867411 .0037107
+ 572860.56 .1029872 .0041313
+ 572920.06 .0951926 .0038820
+ 572979.69 .0997788 .0039975
+ 573039.25 .0911586 .0037097
+ 573098.75 .0924258 .0037646
+ 573158.31 .0923112 .0037759
+ 573217.94 .1045097 .0041307
+ 573277.50 .0977161 .0039146
+ 573337.06 .0959002 .0038962
+ 573396.75 .0911695 .0037922
+ 573456.38 .1016684 .0040185
+ 573515.94 .1124913 .0043059
+ 573575.56 .1045349 .0040268
+ 573635.31 .1055396 .0040530
+ 573694.94 .1053205 .0040901
+ 573754.56 .1080443 .0040375
+ 573814.31 .1112697 .0041623
+ 573873.94 .1094797 .0041416
+ 573933.62 .1178212 .0043587
+ 573993.31 .1094585 .0041558
+ 574053.06 .1158043 .0043176
+ 574112.75 .1135732 .0042477
+ 574172.44 .1216063 .0044160
+ 574232.31 .1182218 .0043403
+ 574292.00 .1108737 .0041586
+ 574351.75 .1286098 .0045510
+ 574411.44 .1314308 .0045359
+ 574471.31 .1169234 .0042118
+ 574531.06 .1152805 .0041547
+ 574590.81 .1320525 .0045793
+ 574650.75 .1205037 .0042364
+ 574710.50 .1241560 .0043779
+ 574770.31 .1335417 .0045711
+ 574830.12 .1256320 .0043919
+ 574890.00 .1315935 .0045935
+ 574949.88 .1360546 .0046783
+ 575009.69 .1361340 .0046569
+ 575069.62 .1378317 .0046740
+ 575129.50 .1331749 .0045295
+ 575189.31 .1347311 .0046332
+ 575249.19 .1255897 .0044533
+ 575309.19 .1316416 .0046160
+ 575369.06 .1428897 .0047697
+ 575428.94 .1494712 .0050383
+ 575489.00 .1389669 .0046392
+ 575548.88 .1445921 .0047852
+ 575608.81 .1400650 .0047025
+ 575668.75 .1489231 .0048831
+ 575728.81 .1485094 .0048496
+ 575788.75 .1476497 .0048188
+ 575848.69 .1522297 .0049415
+ 575908.81 .1545537 .0050309
+ 575968.75 .1699323 .0053650
+ 576028.75 .1475164 .0048222
+ 576088.75 .1555491 .0050206
+ 576148.88 .1506186 .0048901
+ 576208.88 .1626339 .0050869
+ 576268.94 .1512355 .0048656
+ 576329.06 .1542180 .0049230
+ 576389.12 .1709612 .0053296
+ 576449.19 .1622018 .0051112
+ 576509.38 .1569513 .0049636
+ 576569.44 .1656829 .0052024
+ 576629.50 .1694686 .0052780
+ 576689.56 .1729801 .0053634
+ 576749.81 .1665771 .0052156
+ 576809.94 .1686913 .0052749
+ 576870.06 .1672271 .0052341
+ 576930.25 .1670391 .0051922
+ 576990.44 .1733967 .0053877
+ 577050.56 .1770630 .0054680
+ 577110.75 .1799347 .0055286
+ 577171.00 .1742303 .0054125
+ 577231.19 .1644480 .0051675
+ 577291.38 .1837267 .0056224
+ 577351.69 .1803312 .0055007
+ 577411.88 .1684166 .0053098
+ 577472.06 .1749939 .0054168
+ 577532.31 .1852595 .0056468
+ 577592.69 .1702684 .0053438
+ 577652.88 .1828114 .0056683
+ 577713.12 .1957388 .0059867
+ 577773.50 .1843021 .0057157
+ 577833.81 .1845959 .0056948
+ 577894.06 .1844090 .0056357
+ 577954.38 .1845268 .0055787
+ 578014.75 .1843879 .0055876
+ 578075.06 .1961599 .0059678
+ 578135.38 .1818772 .0055085
+ 578195.88 .1968264 .0058028
+ 578256.19 .1984197 .0059096
+ 578316.50 .1922796 .0056785
+ 578376.88 .1976893 .0059911
+ 578437.38 .1945415 .0059003
+ 578497.75 .2031580 .0061132
+ 578558.12 .1806652 .0056230
+ 578618.62 .2062223 .0061174
+ 578679.00 .2013161 .0059909
+ 578739.44 .2005333 .0059745
+ 578799.88 .1972738 .0059324
+ 578860.44 .1889055 .0057052
+ 578920.88 .2008675 .0058968
+ 578981.31 .2056737 .0059101
+ 579041.88 .1985100 .0058024
+ 579102.31 .2047540 .0059349
+ 579162.81 .1945901 .0056345
+ 579223.31 .2114951 .0060587
+ 579283.94 .2077681 .0059170
+ 579344.44 .2143712 .0060721
+ 579404.94 .1971447 .0056820
+ 579465.56 .2019948 .0057406
+ 579526.12 .2118673 .0060061
+ 579586.69 .2097525 .0060096
+ 579647.19 .2034556 .0059576
+ 579707.88 .2077900 .0059390
+ 579768.44 .2161579 .0062823
+ 579829.06 .2123362 .0062067
+ 579889.75 .2132703 .0061779
+ 579950.38 .2212616 .0063517
+ 580011.00 .2161481 .0061837
+ 580071.56 .2102930 .0059911
+ 580132.31 .2163404 .0061570
+ 580193.00 .2244912 .0062236
+ 580253.62 .2163991 .0060734
+ 580314.38 .2228334 .0062217
+ 580375.06 .2235510 .0061599
+ 580435.75 .2250245 .0061540
+ 580496.56 .2152875 .0059615
+ 580557.25 .2181296 .0059874
+ 580617.94 .2175899 .0059788
+ 580678.69 .2180584 .0060434
+ 580739.50 .2230537 .0060928
+ 580800.25 .2310177 .0062390
+ 580861.00 .2276091 .0061359
+ 580921.88 .2350179 .0063656
+ 580982.62 .2214769 .0059829
+ 581043.38 .2357249 .0063958
+ 581104.19 .2312586 .0063569
+ 581165.06 .2329690 .0064401
+ 581225.88 .2271794 .0063171
+ 581286.69 .2412296 .0064906
+ 581347.62 .2392736 .0063946
+ 581408.44 .2380214 .0063564
+ 581469.31 .2350347 .0063446
+ 581530.12 .2370795 .0063276
+ 581591.12 .2369694 .0062674
+ 581652.00 .2426860 .0065056
+ 581712.88 .2472226 .0065591
+ 581773.88 .2412362 .0065755
+ 581834.75 .2348535 .0064041
+ 581895.69 .2434976 .0064765
+ 581956.62 .2454584 .0065265
+ 582017.62 .2389850 .0063633
+ 582078.56 .2388549 .0063753
+ 582139.50 .2391913 .0063252
+ 582200.56 .2363890 .0061993
+ 582261.56 .2535199 .0065764
+ 582322.50 .2543979 .0065979
+ 582383.50 .2535429 .0066716
+ 582444.62 .2562813 .0066432
+ 582505.62 .2443456 .0064494
+ 582566.62 .2487371 .0065313
+ 582627.75 .2551204 .0066444
+ 582688.81 .2527189 .0066839
+ 582749.88 .2560713 .0067776
+ 582810.88 .2559265 .0067781
+ 582872.06 .2501573 .0066110
+ 582933.12 .2464254 .0065268
+ 582994.25 .2580602 .0067214
+ 583055.44 .2676972 .0069164
+ 583116.50 .2568598 .0067347
+ 583177.62 .2503556 .0065564
+ 583238.75 .2515689 .0066119
+ 583300.00 .2571265 .0066872
+ 583361.12 .2528194 .0065725
+ 583422.31 .2583708 .0067166
+ 583483.56 .2590326 .0067617
+ 583544.75 .2669797 .0068761
+ 583605.88 .2602549 .0067509
+ 583667.06 .2696147 .0069514
+ 583728.38 .2668625 .0069009
+ 583789.62 .2655005 .0069371
+ 583850.81 .2664356 .0068819
+ 583912.12 .2756338 .0070235
+ 583973.38 .2678768 .0068195
+ 584034.62 .2695590 .0069497
+ 584096.00 .2788621 .0070785
+ 584157.25 .2731706 .0069648
+ 584218.56 .2704208 .0068883
+ 584279.81 .2792138 .0070950
+ 584341.25 .2643780 .0067942
+ 584402.50 .2775316 .0070702
+ 584463.81 .2641726 .0068192
+ 584525.25 .2741799 .0070909
+ 584586.62 .2773201 .0070470
+ 584647.94 .2879614 .0072302
+ 584709.31 .2718794 .0069390
+ 584770.75 .2796054 .0070635
+ 584832.12 .2742920 .0069112
+ 584893.50 .2877156 .0072215
+ 584955.00 .2786540 .0070493
+ 585016.44 .2790277 .0071019
+ 585077.81 .2791850 .0072035
+ 585139.25 .2897631 .0073231
+ 585200.81 .2940860 .0074937
+ 585262.25 .2678804 .0068624
+ 585323.69 .2723393 .0069097
+ 585385.25 .2858717 .0072633
+ 585446.69 .2902748 .0072870
+ 585508.19 .2778355 .0071216
+ 585569.69 .2842365 .0072560
+ 585631.25 .2890674 .0073308
+ 585692.75 .2759226 .0071758
+ 585754.31 .2814171 .0072105
+ 585815.94 .2879735 .0073174
+ 585877.44 .2807153 .0071206
+ 585939.00 .2871525 .0072853
+ 586000.56 .2816662 .0071877
+ 586062.25 .2847215 .0072577
+ 586123.81 .2764614 .0072777
+ 586185.38 .2762240 .0073014
+ 586247.12 .2772805 .0074972
+ 586308.69 .2808556 .0077487
+ 586370.31 .2813524 .0077467
+ 586431.94 .2671063 .0075212
+ 586493.69 .2658014 .0075699
+ 586555.31 .2487551 .0071844
+ 586617.00 .2380142 .0069016
+ 586678.75 .2299249 .0067278
+ 586740.44 .2101862 .0062869
+ 586802.12 .1894539 .0059379
+ 586863.81 .1813019 .0057499
+ 586925.62 .1584584 .0054745
+ 586987.31 .1343158 .0050152
+ 587049.06 .1083130 .0044723
+ 587110.88 .0878556 .0040298
+ 587172.62 .0885523 .0040748
+ 587234.38 .0904713 .0041763
+ 587296.12 .1152103 .0046355
+ 587358.00 .1335243 .0050727
+ 587419.75 .1595955 .0055465
+ 587481.56 .1920366 .0061293
+ 587543.50 .2224632 .0067196
+ 587605.31 .2491124 .0071670
+ 587667.12 .2618383 .0072834
+ 587729.06 .2765219 .0075333
+ 587790.88 .2865382 .0077462
+ 587852.75 .2974580 .0077843
+ 587914.56 .3005592 .0078630
+ 587976.56 .2947010 .0077055
+ 588038.44 .3139168 .0081368
+ 588100.31 .3010274 .0078020
+ 588162.31 .3217490 .0081526
+ 588224.25 .3323103 .0082708
+ 588286.12 .3323644 .0082015
+ 588348.06 .3307678 .0080164
+ 588410.12 .3456254 .0083349
+ 588472.06 .3406576 .0081371
+ 588534.00 .3483509 .0080832
+ 588596.12 .3536056 .0081812
+ 588658.06 .3608707 .0082424
+ 588720.06 .3762049 .0085789
+ 588782.06 .3655382 .0083187
+ 588844.19 .3711476 .0083691
+ 588906.19 .3643331 .0082650
+ 588968.19 .3996630 .0089545
+ 589030.31 .3958527 .0088155
+ 589092.38 .4067958 .0090811
+ 589154.44 .4155697 .0094035
+ 589216.50 .4064117 .0091136
+ 589278.69 .4376888 .0096929
+ 589340.75 .4274420 .0094573
+ 589402.88 .4423640 .0097198
+ 589465.06 .4740843 .0101281
+ 589527.19 .4719400 .0099428
+ 589589.31 .4957976 .0104751
+ 589651.44 .5136235 .0107079
+ 589713.69 .5403130 .0112109
+ 589775.81 .5639410 .0115402
+ 589838.00 .5673407 .0114871
+ 589900.25 .5766004 .0116873
+ 589962.44 .5583624 .0114056
+ 590024.62 .5610037 .0115693
+ 590086.81 .5240091 .0109216
+ 590149.19 .4706135 .0101246
+ 590211.38 .4128990 .0092037
+ 590273.62 .3468889 .0082252
+ 590335.94 .2973789 .0074421
+ 590398.19 .2397645 .0063884
+ 590460.44 .2074160 .0059411
+ 590522.75 .1842381 .0054473
+ 590585.12 .1627925 .0050067
+ 590647.44 .1685299 .0051402
+ 590709.69 .1697893 .0051349
+ 590772.12 .1718632 .0051772
+ 590834.44 .1795797 .0052815
+ 590896.75 .1770779 .0052841
+ 590959.12 .1839640 .0053161
+ 591021.56 .1901995 .0055462
+ 591083.94 .1920784 .0055063
+ 591146.31 .1968742 .0056434
+ 591208.81 .2012608 .0057778
+ 591271.19 .2111837 .0060016
+ 591333.56 .2076817 .0058599
+ 591396.00 .2178471 .0060775
+ 591458.50 .2200430 .0060139
+ 591520.94 .2149584 .0059114
+ 591583.38 .2261660 .0061058
+ 591645.94 .2188462 .0058666
+ 591708.38 .2279407 .0061410
+ 591770.88 .2352082 .0062141
+ 591833.44 .2458252 .0064374
+ 591895.94 .2399318 .0063759
+ 591958.44 .2597043 .0066558
+ 592020.94 .2487266 .0064247
+ 592083.56 .2485344 .0064070
+ 592146.06 .2485315 .0064294
+ 592208.62 .2492001 .0064538
+ 592271.31 .2562776 .0066152
+ 592333.81 .2489812 .0064778
+ 592396.38 .2638759 .0068258
+ 592459.00 .2533551 .0065210
+ 592521.69 .2553016 .0066340
+ 592584.25 .2642255 .0068221
+ 592646.88 .2618076 .0067877
+ 592709.62 .2506389 .0066077
+ 592772.25 .2551033 .0066705
+ 592834.88 .2670087 .0068319
+ 592897.50 .2551274 .0066164
+ 592960.25 .2576751 .0066231
+ 593022.94 .2623934 .0067079
+ 593085.62 .2653272 .0067747
+ 593148.44 .2747608 .0068657
+ 593211.12 .2733399 .0068597
+ 593273.81 .2799191 .0069624
+ 593336.50 .2692217 .0067679
+ 593399.38 .2768372 .0069689
+ 593462.12 .2706718 .0068204
+ 593524.81 .2716408 .0068982
+ 593587.69 .2748873 .0069737
+ 593650.50 .2648089 .0067761
+ 593713.25 .2666003 .0067729
+ 593776.00 .2780774 .0070308
+ 593838.94 .2772405 .0069806
+ 593901.75 .2803228 .0069696
+ 593964.56 .2847850 .0070764
+ 594027.50 .2844090 .0071219
+ 594090.31 .2793159 .0069874
+ 594153.19 .2927082 .0072285
+ 594216.00 .2856955 .0071294
+ 594279.00 .2788663 .0069641
+ 594341.88 .2847054 .0070421
+ 594404.75 .2771473 .0068839
+ 594467.75 .2828503 .0069532
+ 594530.69 .2767740 .0067899
+ 594593.56 .2860748 .0069971
+ 594656.50 .2832268 .0068846
+ 594719.56 .2957420 .0071495
+ 594782.50 .2897236 .0069884
+ 594845.44 .2833573 .0069437
+ 594908.50 .2896042 .0071191
+ 594971.50 .2801892 .0069083
+ 595034.50 .2910379 .0072112
+ 595097.50 .2819915 .0071149
+ 595160.62 .2857313 .0071634
+ 595223.62 .2851709 .0071958
+ 595286.62 .2939116 .0073901
+ 595349.81 .2960439 .0074262
+ 595412.81 .2850368 .0072557
+ 595475.88 .3032493 .0076170
+ 595539.06 .2976202 .0073344
+ 595602.12 .2965940 .0072369
+ 595665.19 .3050362 .0074039
+ 595728.31 .2888460 .0069516
+ 595791.50 .2980690 .0071245
+ 595854.62 .2913029 .0069800
+ 595917.75 .2890413 .0069692
+ 595981.00 .2971295 .0071512
+ 596044.12 .2908902 .0070527
+ 596107.31 .3027347 .0073500
+ 596170.50 .3020245 .0074020
+ 596233.75 .2933162 .0071311
+ 596296.94 .3131818 .0075560
+ 596360.12 .3123569 .0076020
+ 596423.44 .2947246 .0072165
+ 596486.69 .2756213 .0067933
+ 596549.88 .2949728 .0072250
+ 596613.12 .2963783 .0073282
+ 596676.50 .3040013 .0074601
+ 596739.75 .2881640 .0071313
+ 596803.00 .2868344 .0070714
+ 596866.38 .2941964 .0072771
+ 596929.69 .3048270 .0074927
+ 596993.00 .2893459 .0071304
+ 597056.25 .2974502 .0072341
+ 597119.69 .3004259 .0073504
+ 597183.06 .2950961 .0072795
+ 597246.38 .3124115 .0074694
+ 597309.81 .2869530 .0070762
+ 597373.19 .2916206 .0071294
+ 597436.56 .3124344 .0075678
+ 597499.94 .3017868 .0073089
+ 597563.44 .3050203 .0074982
+ 597626.81 .2974857 .0072852
+ 597690.25 .3080295 .0074218
+ 597753.75 .3026137 .0073056
+ 597817.19 .3022835 .0074108
+ 597880.62 .2942884 .0073261
+ 597944.06 .3145360 .0077075
+ 598007.62 .2989707 .0073688
+ 598071.12 .2969635 .0073825
+ 598134.56 .3152972 .0078042
+ 598198.19 .3207250 .0078416
+ 598261.69 .3193196 .0078315
+ 598325.19 .3068462 .0074524
+ 598388.69 .3171906 .0076306
+ 598452.38 .3062792 .0074277
+ 598515.88 .3036994 .0073730
+ 598579.44 .3102770 .0075853
+ 598643.12 .3193234 .0076608
+ 598706.69 .3158526 .0075506
+ 598770.25 .3104962 .0074366
+ 598833.81 .3149686 .0075750
+ 598897.56 .3043722 .0073993
+ 598961.19 .3114223 .0075739
+ 599024.75 .3271903 .0079142
+ 599088.50 .3095335 .0075610
+ 599152.19 .3075776 .0076403
+ 599215.81 .3103472 .0075962
+ 599279.44 .3229522 .0078513
+ 599343.25 .3012953 .0074104
+ 599406.94 .3126043 .0075857
+ 599470.62 .3110281 .0075394
+ 599534.44 .3183627 .0076941
+ 599598.12 .3221123 .0077266
+ 599661.88 .3148596 .0075409
+ 599725.69 .3079336 .0073414
+ 599789.44 .3182009 .0075926
+ 599853.19 .3109212 .0075552
+ 599916.94 .3198506 .0077189
+ 599980.88 .3105588 .0075247
+ 600044.62 .3190343 .0077646
+ 600108.44 .3284714 .0079314
+ 600172.38 .3149613 .0076236
+ 600236.12 .3052450 .0073308
+ 600300.00 .3146109 .0074949
+ 600363.81 .3209292 .0076202
+ 600427.75 .3132700 .0073684
+ 600491.62 .3265332 .0075915
+ 600555.50 .3240671 .0076565
+ 600619.50 .3116558 .0073785
+ 600683.38 .3189020 .0074865
+ 600747.25 .3306685 .0077331
+ 600811.12 .3043847 .0072601
+ 600875.19 .3218586 .0075803
+ 600939.12 .3077201 .0073409
+ 601003.00 .3091556 .0073824
+ 601067.12 .3181123 .0075458
+ 601131.06 .3188380 .0075495
+ 601195.00 .3182680 .0075106
+ 601259.00 .3243334 .0076068
+ 601323.06 .3199129 .0075197
+ 601387.06 .3175316 .0074807
+ 601451.06 .3165942 .0074994
+ 601515.25 .3241441 .0076545
+ 601579.25 .3048662 .0073382
+ 601643.25 .3143508 .0075491
+ 601707.31 .3173754 .0075102
+ 601771.50 .3196039 .0077147
+ 601835.56 .3274838 .0078508
+ 601899.62 .3181027 .0076378
+ 601963.88 .3292089 .0077650
+ 602027.94 .2952760 .0071598
+ 602092.06 .2916130 .0071794
+ 602156.19 .2972583 .0072315
+ 602220.44 .2670869 .0066943
+ 602284.56 .2479738 .0064232
+ 602348.69 .2252445 .0060394
+ 602413.00 .2128570 .0057422
+ 602477.12 .2155314 .0057916
+ 602541.31 .2170995 .0058455
+ 602605.50 .2308389 .0060659
+ 602669.81 .2522257 .0063823
+ 602734.06 .2699346 .0066755
+ 602798.25 .2795219 .0067895
+ 602862.62 .3079474 .0072480
+ 602926.88 .3086704 .0074103
+ 602991.12 .3223473 .0075695
+ 603055.38 .3088889 .0073804
+ 603119.75 .3266957 .0076277
+ 603184.06 .3269558 .0076202
+ 603248.31 .3154023 .0073914
+ 603312.75 .3230485 .0076474
+ 603377.06 .3147405 .0075600
+ 603441.38 .3292503 .0078775
+ 603505.81 .3165336 .0076006
+ 603570.19 .3080219 .0074742
+ 603634.56 .3205216 .0076604
+ 603698.88 .3280498 .0079253
+ 603763.38 .3181899 .0076359
+ 603827.75 .3215553 .0077338
+ 603892.19 .3386422 .0080154
+ 603956.69 .3305666 .0078222
+ 604021.12 .3097468 .0073497
+ 604085.56 .3304700 .0076782
+ 604150.00 .3358676 .0078630
+ 604214.56 .3275100 .0077068
+ 604279.00 .3194396 .0074484
+ 604343.44 .3355258 .0078196
+ 604408.06 .3369856 .0079035
+ 604472.56 .3312461 .0078272
+ 604537.06 .3400418 .0080703
+ 604601.56 .3267679 .0077722
+ 604666.19 .3358217 .0079507
+ 604730.75 .3392998 .0080652
+ 604795.25 .3409352 .0080229
+ 604859.94 .3268010 .0077451
+ 604924.50 .3310613 .0077957
+ 604989.06 .3210935 .0075122
+ 605053.62 .3302576 .0077043
+ 605118.38 .3389658 .0078671
+ 605182.94 .3351492 .0078120
+ 605247.56 .3379066 .0078934
+ 605312.31 .3277843 .0077309
+ 605376.94 .3421438 .0080327
+ 605441.56 .3212607 .0075758
+ 605506.25 .3334568 .0078540
+ 605571.00 .3411401 .0080696
+ 605635.69 .3307496 .0077570
+ 605700.38 .3355965 .0078527
+ 605765.19 .3249633 .0077399
+ 605829.88 .3336622 .0079328
+ 605894.62 .3266700 .0079008
+ 605959.31 .3375687 .0079995
+ 606024.19 .3386352 .0081297
+ 606088.94 .3186762 .0076425
+ 606153.69 .3303680 .0078097
+ 606218.56 .3458486 .0080291
+ 606283.38 .3219725 .0075257
+ 606348.12 .3252601 .0075462
+ 606412.94 .3406015 .0078193
+ 606477.88 .3432982 .0078873
+ 606542.69 .3299779 .0075272
+ 606607.50 .3542266 .0080312
+ 606672.50 .3263328 .0076377
+ 606737.31 .3336771 .0077648
+ 606802.19 .3296420 .0077577
+ 606867.06 .3270569 .0077024
+ 606932.06 .3400493 .0080348
+ 606996.94 .3348732 .0080144
+ 607061.88 .3348614 .0079995
+ 607126.88 .3284639 .0078013
+ 607191.81 .3373495 .0080508
+ 607256.75 .3418915 .0080934
+ 607321.81 .3389750 .0080090
+ 607386.75 .3380668 .0078801
+ 607451.75 .3409410 .0080498
+ 607516.69 .3456563 .0081388
+ 607581.81 .3357621 .0078820
+ 607646.81 .3246994 .0075531
+ 607711.81 .3364918 .0077428
+ 607776.94 .3384114 .0077858
+ 607842.00 .3415482 .0077755
+ 607907.00 .3432249 .0078386
+ 607972.06 .3423229 .0077446
+ 608037.25 .3358175 .0076719
+ 608102.31 .3409462 .0078339
+ 608167.44 .3225926 .0075059
+ 608232.62 .3217345 .0075821
+ 608297.75 .3338234 .0078187
+ 608362.81 .3227679 .0075357
+ 608427.94 .3420234 .0079851
+ 608493.19 .3378066 .0078621
+ 608558.38 .3375084 .0078566
+ 608623.50 .3418469 .0079394
+ 608688.81 .3344460 .0078675
+ 608753.94 .3554237 .0082961
+ 608819.12 .3426108 .0078923
+ 608884.31 .3561713 .0082268
+ 608949.69 .3513474 .0081380
+ 609014.88 .3451132 .0079685
+ 609080.12 .3354732 .0078398
+ 609145.50 .3537913 .0081970
+ 609210.69 .3392352 .0078691
+ 609276.00 .3349932 .0077755
+ 609341.25 .3632960 .0084103
+ 609406.62 .3416012 .0079625
+ 609471.94 .3558987 .0082044
+ 609537.25 .3521019 .0080860
+ 609602.69 .3312008 .0075551
+ 609668.00 .3438086 .0078505
+ 609733.31 .3415194 .0077671
+ 609798.69 .3397303 .0077265
+ 609864.12 .3491625 .0078353
+ 609929.50 .3406328 .0076661
+ 609994.88 .3522474 .0078877
+ 610060.38 .3496032 .0078843
+ 610125.75 .3433272 .0078555
+ 610191.19 .3429235 .0078087
+ 610256.56 .3530767 .0080558
+ 610322.12 .3317537 .0076155
+ 610387.56 .3341626 .0077647
+ 610453.00 .3384240 .0078282
+ 610518.62 .3358806 .0078307
+ 610584.06 .3532657 .0082100
+ 610649.56 .3360559 .0078422
+ 610715.06 .3486720 .0080578
+ 610780.69 .3511692 .0081992
+ 610846.19 .3481642 .0080119
+ 610911.69 .3395118 .0079749
+ 610977.38 .3290147 .0077089
+ 611042.88 .3471589 .0080733
+ 611108.44 .3608277 .0082303
+ 611174.00 .3503744 .0079621
+ 611239.69 .3438561 .0077706
+ 611305.31 .3557814 .0081199
+ 611370.88 .3468747 .0078717
+ 611436.62 .3451857 .0078968
+ 611502.25 .3314480 .0076355
+ 611567.88 .3426192 .0078286
+ 611633.62 .3514023 .0081164
+ 611699.25 .3596623 .0083727
+ 611764.94 .3303767 .0077493
+ 611830.56 .3301271 .0077437
+ 611896.38 .3574494 .0083339
+ 611962.06 .3563625 .0081714
+ 612027.75 .3422889 .0079326
+ 612093.62 .3475958 .0079831
+ 612159.31 .3460152 .0079520
+ 612225.06 .3425925 .0079693
+ 612290.81 .3537323 .0082118
+ 612356.69 .3685596 .0085302
+ 612422.44 .3413726 .0079616
+ 612488.25 .3343072 .0077887
+ 612554.12 .3582571 .0082391
+ 612619.94 .3581344 .0083110
+ 612685.75 .3477941 .0079885
+ 612751.56 .3442698 .0078398
+ 612817.50 .3434873 .0078418
+ 612883.31 .3607099 .0081995
+ 612949.19 .3549219 .0080757
+ 613015.19 .3503954 .0079652
+ 613081.06 .3639244 .0083184
+ 613146.94 .3496710 .0079844
+ 613212.81 .3442040 .0078923
+ 613278.81 .3456964 .0079965
+ 613344.75 .3534276 .0081801
+ 613410.69 .3516369 .0080181
+ 613476.75 .3564691 .0082748
+ 613542.69 .3450476 .0081021
+ 613608.62 .3591037 .0084339
+ 613674.62 .3460705 .0082558
+ 613740.69 .3494687 .0082944
+ 613806.69 .3518693 .0082410
+ 613872.69 .3508410 .0082966
+ 613938.81 .3550119 .0082804
+ 614004.81 .3480047 .0080665
+ 614070.88 .3444663 .0080141
+ 614136.88 .3559940 .0082151
+ 614203.06 .3526321 .0082355
+ 614269.12 .3472606 .0080774
+ 614335.19 .3530637 .0082855
+ 614401.44 .3404220 .0079876
+ 614467.50 .3500159 .0081756
+ 614533.62 .3602853 .0083675
+ 614599.75 .3506875 .0081280
+ 614666.00 .3435052 .0080012
+ 614732.12 .3603595 .0083794
+ 614798.25 .3590802 .0083608
+ 614864.56 .3417903 .0080962
+ 614930.69 .3612315 .0085195
+ 614996.88 .3538082 .0083960
+ 615063.06 .3576486 .0085343
+ 615129.44 .3615272 .0085074
+ 615195.62 .3510297 .0083501
+ 615261.88 .3499973 .0083151
+ 615328.19 .3517114 .0084564
+ 615394.44 .3473039 .0083626
+ 615460.69 .3639690 .0086924
+ 615527.06 .3496882 .0083255
+ 615593.38 .3591057 .0085741
+ 615659.62 .3499939 .0083004
+ 615725.94 .3481228 .0082711
+ 615792.38 .3546655 .0083646
+ 615858.69 .3582535 .0084433
+ 615925.00 .3549276 .0083561
+ 615991.50 .3595124 .0083798
+ 616057.81 .3505382 .0082322
+ 616124.19 .3371243 .0079405
+ 616190.56 .3587214 .0082599
+ 616257.06 .3576868 .0083390
+ 616323.50 .3601949 .0083664
+ 616389.88 .3534848 .0082703
+ 616456.44 .3453205 .0080595
+ 616522.88 .3537584 .0083508
+ 616589.31 .3537392 .0084475
+ 616655.75 .3568621 .0084746
+ 616722.31 .3564598 .0085021
+ 616788.81 .3590734 .0086513
+ 616855.25 .3484372 .0082741
+ 616921.88 .3576807 .0086254
+ 616988.38 .3487235 .0083278
+ 617054.88 .3613373 .0085460
+ 617121.44 .3506005 .0083116
+ 617188.06 .3595743 .0085259
+ 617254.62 .3616072 .0085788
+ 617321.19 .3442544 .0082488
+ 617387.88 .3439116 .0083591
+ 617454.44 .3456398 .0083809
+ 617521.00 .3644085 .0087698
+ 617587.62 .3466779 .0083387
+ 617654.38 .3580636 .0084555
+ 617721.00 .3665546 .0085297
+ 617787.62 .3589689 .0082884
+ 617854.38 .3621613 .0083651
+ 617921.00 .3654903 .0084861
+ 617987.69 .3574080 .0081507
+ 618054.38 .3589103 .0083198
+ 618121.19 .3649916 .0084071
+ 618187.88 .3374767 .0080528
+ 618254.56 .3656089 .0085692
+ 618321.44 .3552172 .0083555
+ 618388.12 .3699635 .0085773
+ 618454.88 .3609409 .0084664
+ 618521.62 .3600490 .0083044
+ 618588.50 .3687418 .0084483
+ 618655.31 .3452276 .0079516
+ 618722.06 .3519455 .0081069
+ 618789.00 .3622158 .0082959
+ 618855.81 .3598472 .0084159
+ 618922.62 .3637780 .0084640
+ 618989.44 .3464006 .0081566
+ 619056.38 .3482137 .0081577
+ 619123.25 .3560764 .0084407
+ 619190.06 .3571547 .0084358
+ 619257.06 .3401221 .0081480
+ 619323.94 .3588835 .0085617
+ 619390.88 .3415271 .0080716
+ 619457.75 .3393053 .0080941
+ 619524.81 .3507561 .0082453
+ 619591.69 .3462888 .0080918
+ 619658.62 .3506363 .0081718
+ 619725.69 .3524134 .0082816
+ 619792.69 .3502449 .0081527
+ 619859.62 .3413770 .0080350
+ 619926.75 .3374839 .0079856
+ 619993.75 .3339195 .0080535
+ 620060.75 .3472911 .0082172
+ 620127.75 .3290591 .0079449
+ 620194.88 .3372690 .0081580
+ 620261.94 .3267203 .0080310
+ 620328.94 .3294843 .0081378
+ 620396.12 .3137615 .0076833
+ 620463.19 .3188437 .0079133
+ 620530.25 .3337035 .0080622
+ 620597.38 .3234396 .0079315
+ 620664.56 .3382259 .0081853
+ 620731.69 .3314688 .0079297
+ 620798.81 .3462609 .0081583
+ 620866.06 .3536023 .0083219
+ 620933.19 .3478862 .0082080
+ 621000.38 .3407407 .0080925
+ 621067.50 .3596599 .0084944
+ 621134.81 .3598582 .0085428
+ 621202.00 .3673456 .0087440
+ 621269.19 .3611867 .0086103
+ 621336.50 .3535424 .0084224
+ 621403.75 .3662159 .0085530
+ 621470.94 .3768176 .0089623
+ 621538.19 .3769597 .0086803
+ 621605.56 .3640149 .0085075
+ 621672.81 .3594911 .0084360
+ 621740.12 .3789554 .0087678
+ 621807.50 .3586537 .0083601
+ 621874.81 .3602165 .0083600
+ 621942.12 .3558154 .0082760
+ 622009.44 .3675277 .0084151
+ 622076.88 .3546517 .0081620
+ 622144.19 .3604246 .0082219
+ 622211.56 .3626953 .0083130
+ 622279.06 .3546746 .0082640
+ 622346.44 .3707682 .0085214
+ 622413.81 .3545841 .0081804
+ 622481.19 .3555954 .0083660
+ 622548.75 .3640298 .0083670
+ 622616.12 .3652753 .0084507
+ 622683.56 .3653027 .0085204
+ 622751.12 .3592463 .0083963
+ 622818.56 .3613431 .0085079
+ 622886.00 .3608327 .0085524
+ 622953.50 .3705305 .0087053
+ 623021.12 .3614853 .0085515
+ 623088.56 .3644549 .0085805
+ 623156.06 .3638965 .0085358
+ 623223.75 .3624751 .0084732
+ 623291.25 .3677246 .0086341
+ 623358.81 .3677230 .0087229
+ 623426.31 .3656395 .0086492
+ 623494.00 .3654867 .0085715
+ 623561.56 .3669955 .0085149
+ 623629.12 .3537712 .0082127
+ 623696.88 .3630854 .0083960
+ 623764.50 .3650254 .0084231
+ 623832.06 .3585955 .0083514
+ 623899.81 .3611884 .0083659
+ 623967.44 .3603315 .0083066
+ 624035.12 .3727547 .0085333
+ 624102.75 .3866580 .0088628
+ 624170.56 .3742752 .0086923
+ 624238.25 .3640121 .0083856
+ 624305.94 .3668045 .0084252
+ 624373.75 .3728571 .0084901
+ 624441.44 .3698015 .0083221
+ 624509.19 .3642308 .0082267
+ 624576.94 .3635534 .0082539
+ 624644.75 .3689700 .0084019
+ 624712.56 .3675826 .0083977
+ 624780.31 .3797745 .0086840
+ 624848.19 .3718728 .0084808
+ 624916.00 .3786860 .0087674
+ 624983.81 .3727467 .0084670
+ 625051.62 .3797449 .0087011
+ 625119.56 .3621936 .0081694
+ 625187.38 .3664152 .0084474
+ 625255.19 .3490483 .0079467
+ 625323.19 .3760820 .0087439
+ 625391.06 .3752283 .0086988
+ 625458.94 .3576718 .0083695
+ 625526.81 .3649340 .0084762
+ 625594.88 .3639497 .0086328
+ 625662.75 .3605776 .0083852
+ 625730.69 .3690281 .0086269
+ 625798.75 .3647867 .0084665
+ 625866.69 .3662362 .0085179
+ 625934.62 .3656036 .0085032
+ 626002.62 .3831373 .0089212
+ 626070.69 .3769839 .0088536
+ 626138.69 .3760233 .0088193
+ 626206.69 .3744859 .0087984
+ 626274.81 .3739699 .0088285
+ 626342.81 .3724635 .0088571
+ 626410.88 .3766783 .0088318
+ 626478.94 .3762209 .0088293
+ 626547.06 .3798638 .0088782
+ 626615.19 .3702564 .0087182
+ 626683.25 .3735823 .0086560
+ 626751.44 .3550017 .0083095
+ 626819.56 .3660122 .0084948
+ 626887.62 .3886845 .0088106
+ 626955.75 .3723277 .0083886
+ 627024.00 .3573082 .0081270
+ 627092.19 .3744569 .0084198
+ 627160.31 .3870622 .0087103
+ 627228.62 .3808402 .0086141
+ 627296.81 .3642895 .0082503
+ 627365.00 .3692875 .0083328
+ 627433.19 .3626943 .0082255
+ 627501.50 .3623358 .0081438
+ 627569.75 .3746191 .0084884
+ 627637.94 .3736312 .0085138
+ 627706.31 .3736897 .0084712
+ 627774.56 .3845957 .0087882
+ 627842.88 .3679194 .0083681
+ 627911.12 .3691291 .0083757
+ 627979.56 .3696990 .0084150
+ 628047.81 .3698899 .0084188
+ 628116.12 .3796599 .0086009
+ 628184.62 .3734806 .0084802
+ 628252.94 .3841176 .0086614
+ 628321.25 .3712115 .0083925
+ 628389.75 .3737395 .0084213
+ 628458.12 .3750394 .0084173
+ 628526.50 .3785154 .0084512
+ 628594.88 .3642341 .0081129
+ 628663.38 .3599965 .0081003
+ 628731.81 .3846508 .0085560
+ 628800.25 .3822996 .0085679
+ 628868.81 .3667257 .0083055
+ 628937.25 .3764555 .0085703
+ 629005.69 .3731133 .0084796
+ 629074.12 .3787657 .0086156
+ 629142.75 .3801202 .0087003
+ 629211.25 .3766137 .0086209
+ 629279.75 .3765771 .0086461
+ 629348.38 .3688767 .0084627
+ 629416.88 .3621255 .0083819
+ 629485.44 .3665118 .0083752
+ 629554.00 .3479445 .0080216
+ 629622.69 .3758926 .0086509
+ 629691.25 .3698606 .0085268
+ 629759.81 .3857489 .0088602
+ 629828.50 .3643638 .0082173
+ 629897.12 .3642146 .0082968
+ 629965.75 .3824273 .0086238
+ 630034.38 .3705334 .0084336
+ 630103.12 .3596410 .0081966
+ 630171.75 .3742714 .0084213
+ 630240.44 .3580301 .0080857
+ 630309.19 .3797289 .0085629
+ 630377.88 .3690396 .0082760
+ 630446.56 .3635626 .0082567
+ 630515.25 .3638430 .0081638
+ 630584.12 .3719944 .0084135
+ 630652.88 .3787508 .0086477
+ 630721.56 .3825179 .0086932
+ 630790.44 .3768912 .0086202
+ 630859.19 .3860304 .0088053
+ 630928.00 .3844562 .0087719
+ 630996.75 .3757377 .0085360
+ 631065.69 .3731478 .0084645
+ 631134.50 .3719828 .0084516
+ 631203.31 .3745954 .0085521
+ 631272.25 .3760014 .0085258
+ 631341.06 .3771553 .0085225
+ 631409.94 .3722247 .0083858
+ 631478.81 .3638960 .0082684
+ 631547.81 .3812346 .0085824
+ 631616.69 .3746335 .0085087
+ 631685.56 .3686599 .0083881
+ 631754.56 .3706477 .0083357
+ 631823.50 .3677459 .0082849
+ 631892.44 .3742560 .0083340
+ 631961.38 .4005285 .0088249
+ 632030.44 .3673095 .0081205
+ 632099.44 .3751877 .0083174
+ 632168.38 .3821189 .0084039
+ 632237.50 .3775927 .0082754
+ 632306.50 .3792497 .0083702
+ 632375.50 .3839366 .0084016
+ 632444.62 .3827337 .0084535
+ 632513.69 .3789307 .0083878
+ 632582.69 .3808639 .0085436
+ 632651.75 .3763535 .0082817
+ 632720.94 .3831262 .0084108
+ 632790.00 .3738708 .0083187
+ 632859.12 .3802490 .0083953
+ 632928.31 .3724210 .0083910
+ 632997.44 .3748697 .0083566
+ 633066.56 .3678897 .0081999
+ 633135.69 .3691079 .0083396
+ 633204.94 .3865516 .0086754
+ 633274.12 .3702648 .0083448
+ 633343.25 .3873121 .0086256
+ 633412.56 .3839549 .0085720
+ 633481.75 .3743964 .0084181
+ 633550.94 .3759462 .0083188
+ 633620.19 .3699622 .0081732
+ 633689.50 .3926211 .0085767
+ 633758.75 .3696063 .0082106
+ 633828.00 .3693636 .0081721
+ 633897.38 .3887422 .0086063
+ 633966.62 .3633278 .0082062
+ 634035.94 .3744072 .0084853
+ 634105.19 .3667769 .0083016
+ 634174.62 .3921419 .0088894
+ 634243.94 .3701991 .0084432
+ 634313.25 .3895438 .0087453
+ 634382.75 .3824760 .0088166
+ 634452.06 .3840118 .0085735
+ 634521.44 .3806740 .0086350
+ 634590.81 .3659708 .0082864
+ 634660.31 .3916682 .0087774
+ 634729.69 .3784317 .0084681
+ 634799.12 .3875405 .0086394
+ 634868.62 .3708588 .0081761
+ 634938.06 .3890888 .0085852
+ 635007.50 .3849926 .0084353
+ 635076.94 .3864415 .0085079
+ 635146.56 .3930479 .0087477
+ 635216.00 .3817073 .0083541
+ 635285.50 .3853219 .0084586
+ 635355.12 .3947836 .0086643
+ 635424.62 .3797454 .0083746
+ 635494.12 .3879871 .0084907
+ 635563.69 .3785498 .0083939
+ 635633.31 .3732486 .0083311
+ 635702.88 .3911640 .0086782
+ 635772.44 .3720472 .0084044
+ 635842.19 .3650994 .0081720
+ 635911.75 .3849593 .0086536
+ 635981.31 .3770050 .0085690
+ 636050.94 .3774636 .0085573
+ 636120.69 .3808165 .0085882
+ 636190.31 .3781822 .0084769
+ 636259.94 .3686755 .0082145
+ 636329.75 .3556447 .0079345
+ 636399.44 .3850166 .0083924
+ 636469.06 .3811215 .0083052
+ 636538.94 .3910983 .0085368
+ 636608.62 .3945508 .0084799
+ 636678.31 .3643642 .0079447
+ 636748.06 .3753825 .0080290
+ 636817.94 .3818942 .0083039
+ 636887.62 .3896196 .0084800
+ 636957.44 .3746505 .0081972
+ 637027.31 .3854994 .0085016
+ 637097.06 .3736154 .0082328
+ 637166.88 .3689819 .0081841
+ 637236.69 .3874000 .0086563
+ 637306.62 .3780558 .0084097
+ 637376.44 .3820057 .0084330
+ 637446.31 .3748643 .0083894
+ 637516.25 .3914359 .0086803
+ 637586.12 .3907877 .0086377
+ 637656.00 .3792428 .0084236
+ 637725.88 .3919713 .0087010
+ 637795.94 .3973209 .0088489
+ 637865.81 .3808645 .0084629
+ 637935.75 .3686973 .0082088
+ 638005.81 .3726748 .0082337
+ 638075.75 .3918701 .0086842
+ 638145.69 .3936690 .0086424
+ 638215.62 .3804801 .0084869
+ 638285.75 .4043766 .0088483
+ 638355.75 .3750618 .0081629
+ 638425.75 .3865803 .0084562
+ 638495.88 .3893218 .0086343
+ 638565.88 .3739639 .0083073
+ 638635.94 .3743429 .0084128
+ 638706.00 .3837322 .0085815
+ 638776.19 .3674978 .0081733
+ 638846.25 .3860496 .0085199
+ 638916.31 .3963684 .0087036
+ 638986.50 .3642314 .0080661
+ 639056.62 .3788479 .0084232
+ 639126.75 .3883121 .0085509
+ 639196.88 .3860570 .0085414
+ 639267.12 .3728386 .0082875
+ 639337.31 .3800311 .0084319
+ 639407.44 .3776177 .0083555
+ 639477.75 .3881433 .0085440
+ 639547.94 .3702318 .0080831
+ 639618.12 .3833868 .0083606
+ 639688.31 .3828965 .0084059
+ 639758.69 .3977251 .0086034
+ 639828.94 .3866258 .0083711
+ 639899.12 .3803257 .0083071
+ 639969.56 .3912888 .0085055
+ 640039.81 .3749458 .0083246
+ 640110.06 .3842839 .0086262
+ 640180.38 .3699822 .0082118
+ 640250.81 .3805487 .0085041
+ 640321.12 .3792078 .0084696
+ 640391.44 .3822062 .0085718
+ 640461.88 .3759953 .0084597
+ 640532.25 .3977582 .0088113
+ 640602.56 .3811696 .0085284
+ 640672.94 .3727886 .0082849
+ 640743.44 .3887895 .0086987
+ 640813.88 .3736412 .0082913
+ 640884.25 .3847550 .0085715
+ 640954.81 .3810909 .0084726
+ 641025.25 .3775164 .0084143
+ 641095.69 .3798005 .0083332
+ 641166.25 .3745423 .0082268
+ 641236.69 .3631499 .0080026
+ 641307.19 .3821616 .0083144
+ 641377.69 .3909625 .0083099
+ 641448.31 .3893808 .0083583
+ 641518.81 .3866889 .0082686
+ 641589.31 .3768948 .0080319
+ 641660.00 .3790598 .0082279
+ 641730.50 .3803762 .0082738
+ 641801.06 .3807561 .0082390
+ 641871.62 .3769087 .0081791
+ 641942.38 .3895384 .0084972
+ 642012.94 .3869116 .0083422
+ 642083.56 .3862699 .0084761
+ 642154.31 .3646683 .0079537
+ 642224.94 .3790212 .0081849
+ 642295.56 .3740358 .0081036
+ 642366.19 .3819768 .0082415
+ 642437.00 .3866788 .0083725
+ 642507.69 .3700088 .0079666
+ 642578.31 .3840373 .0081883
+ 642649.19 .3890858 .0083738
+ 642719.88 .3756556 .0080382
+ 642790.56 .3757665 .0081542
+ 642861.31 .3836548 .0083094
+ 642932.19 .3723205 .0081010
+ 643002.94 .3896749 .0084313
+ 643073.69 .3822413 .0083692
+ 643144.62 .3870721 .0084315
+ 643215.44 .3959780 .0086622
+ 643286.19 .3734107 .0082055
+ 643357.00 .3907064 .0085460
+ 643428.00 .3664997 .0081246
+ 643498.81 .3660198 .0080265
+ 643569.62 .3771270 .0083056
+ 643640.62 .3827176 .0084012
+ 643711.50 .3758638 .0081253
+ 643782.38 .3718741 .0081918
+ 643853.31 .3806638 .0083461
+ 643924.31 .3797179 .0083738
+ 643995.25 .3732293 .0083254
+ 644066.19 .3733041 .0082539
+ 644137.25 .3738407 .0083915
+ 644208.19 .3696635 .0082532
+ 644279.12 .3898413 .0085988
+ 644350.12 .3678164 .0080603
+ 644421.25 .3744645 .0081626
+ 644492.25 .3755741 .0082696
+ 644563.25 .3715430 .0080311
+ 644634.44 .3925345 .0085079
+ 644705.44 .3831453 .0083687
+ 644776.50 .3709575 .0080726
+ 644847.56 .3881471 .0083764
+ 644918.75 .3750359 .0080913
+ 644989.81 .3830962 .0083638
+ 645060.94 .3705913 .0080434
+ 645132.19 .3555793 .0078046
+ 645203.25 .3624099 .0078905
+ 645274.38 .3617816 .0078604
+ 645345.69 .3737668 .0080770
+ 645416.81 .3630011 .0079677
+ 645488.00 .3437467 .0075510
+ 645559.19 .3584417 .0079680
+ 645630.50 .3436845 .0076762
+ 645701.69 .3615301 .0080534
+ 645772.88 .3554826 .0078779
+ 645844.25 .3343462 .0074549
+ 645915.50 .3513846 .0077608
+ 645986.75 .3655189 .0080659
+ 646058.00 .3593544 .0079341
+ 646129.38 .3555975 .0079063
+ 646200.69 .3715329 .0081324
+ 646271.94 .3746921 .0081697
+ 646343.38 .3655122 .0080369
+ 646414.75 .3841791 .0083824
+ 646486.06 .3725381 .0082435
+ 646557.38 .3634577 .0080946
+ 646628.88 .3632511 .0081115
+ 646700.25 .3723768 .0083078
+ 646771.62 .3808997 .0083913
+ 646843.12 .3762443 .0083031
+ 646914.56 .3693367 .0081457
+ 646985.94 .3661349 .0081322
+ 647057.38 .3571977 .0080291
+ 647128.94 .3776753 .0083957
+ 647200.38 .3673890 .0082015
+ 647271.81 .3698665 .0081609
+ 647343.44 .3623389 .0080576
+ 647414.94 .3773505 .0081858
+ 647486.44 .3792453 .0082633
+ 647557.94 .3693999 .0080497
+ 647629.56 .3741535 .0082225
+ 647701.12 .3676201 .0079896
+ 647772.62 .3762365 .0081372
+ 647844.31 .3679630 .0080558
+ 647915.88 .3597243 .0078670
+ 647987.50 .3827178 .0082455
+ 648059.06 .3757388 .0081476
+ 648130.81 .3713449 .0080756
+ 648202.44 .3795771 .0081784
+ 648274.06 .3689722 .0081289
+ 648345.81 .3533700 .0076966
+ 648417.44 .3686698 .0080448
+ 648489.12 .3617626 .0079260
+ 648560.81 .3691612 .0080552
+ 648632.62 .3646595 .0079968
+ 648704.31 .3853677 .0083763
+ 648776.00 .3650123 .0080167
+ 648847.88 .3770064 .0081617
+ 648919.62 .3743445 .0081336
+ 648991.31 .3768196 .0082442
+ 649063.12 .3655995 .0081069
+ 649135.00 .3616903 .0080712
+ 649206.75 .3582596 .0079889
+ 649278.56 .3663674 .0083218
+ 649350.50 .3741917 .0085274
+ 649422.31 .3562924 .0082833
+ 649494.12 .3509915 .0082430
+ 649566.00 .3595257 .0083433
+ 649638.00 .3623348 .0085295
+ 649709.81 .3590407 .0084942
+ 649781.69 .3427417 .0081513
+ 649853.75 .3479879 .0081721
+ 649925.62 .3592260 .0083940
+ 649997.56 .3674198 .0085053
+ 650069.62 .3421221 .0079089
+ 650141.50 .3349777 .0076921
+ 650213.50 .3423032 .0078312
+ 650285.44 .3439151 .0077309
+ 650357.56 .3369241 .0076457
+ 650429.50 .3375093 .0076727
+ 650501.50 .3557012 .0079991
+ 650573.62 .3415357 .0076290
+ 650645.69 .3411731 .0076727
+ 650717.69 .3423819 .0076755
+ 650789.75 .3477336 .0078042
+ 650861.94 .3545671 .0079021
+ 650934.00 .3514390 .0078340
+ 651006.06 .3684550 .0081886
+ 651078.31 .3625596 .0080195
+ 651150.38 .3574807 .0078448
+ 651222.50 .3592751 .0079511
+ 651294.62 .3633137 .0080068
+ 651366.94 .3543395 .0077851
+ 651439.06 .3502519 .0078318
+ 651511.25 .3479675 .0076620
+ 651583.56 .3755089 .0082447
+ 651655.75 .3697392 .0081224
+ 651727.94 .3881785 .0083959
+ 651800.12 .3557347 .0076688
+ 651872.50 .3606444 .0078060
+ 651944.75 .3597648 .0077542
+ 652016.94 .3764883 .0080171
+ 652089.38 .3565001 .0076205
+ 652161.62 .3729820 .0079832
+ 652233.94 .3758309 .0079599
+ 652306.19 .3802918 .0081028
+ 652378.62 .3680218 .0078743
+ 652450.94 .3669594 .0078286
+ 652523.31 .3607322 .0077913
+ 652595.75 .3656119 .0079746
+ 652668.12 .3682928 .0079747
+ 652740.50 .3653878 .0078637
+ 652812.88 .3824296 .0082185
+ 652885.38 .3762719 .0081648
+ 652957.81 .3641843 .0078699
+ 653030.19 .3716037 .0079182
+ 653102.75 .3702910 .0079412
+ 653175.19 .3765003 .0080981
+ 653247.69 .3664595 .0078599
+ 653320.12 .3707967 .0078977
+ 653392.75 .3870590 .0081818
+ 653465.25 .3826234 .0081927
+ 653537.75 .3668379 .0078168
+ 653610.38 .3852467 .0082315
+ 653682.88 .3752790 .0079051
+ 653755.44 .3744640 .0079448
+ 653828.00 .3765968 .0078601
+ 653900.69 .3695922 .0078195
+ 653973.25 .3782330 .0079623
+ 654045.81 .3698499 .0079523
+ 654118.56 .3703970 .0079923
+ 654191.19 .3661513 .0079735
+ 654263.81 .3655364 .0079276
+ 654336.56 .3732059 .0081180
+ 654409.19 .3674075 .0079088
+ 654481.88 .3678330 .0080206
+ 654554.50 .3721541 .0081271
+ 654627.31 .3772374 .0080628
+ 654700.00 .3673650 .0080342
+ 654772.75 .3761280 .0082225
+ 654845.56 .3617156 .0079153
+ 654918.31 .3899517 .0083809
+ 654991.06 .3727922 .0081367
+ 655063.81 .3689057 .0079813
+ 655136.69 .3695081 .0081068
+ 655209.50 .3795085 .0083424
+ 655282.25 .3897631 .0085941
+ 655355.19 .3749965 .0082397
+ 655428.00 .3802486 .0083643
+ 655500.88 .3838763 .0084327
+ 655573.69 .3725308 .0082904
+ 655646.69 .3911423 .0086055
+ 655719.56 .3794624 .0083473
+ 655792.44 .3680135 .0081060
+ 655865.44 .3865622 .0084751
+ 655938.31 .3838686 .0083984
+ 656011.25 .3872503 .0083403
+ 656084.19 .3656597 .0079365
+ 656157.25 .3728013 .0080223
+ 656230.19 .3780078 .0081934
+ 656303.12 .3759059 .0081518
+ 656376.25 .3761838 .0081335
+ 656449.25 .3800719 .0082282
+ 656522.25 .3823312 .0083365
+ 656595.25 .3852525 .0082396
+ 656668.44 .3854699 .0082034
+ 656741.44 .3874106 .0082552
+ 656814.50 .3766980 .0081203
+ 656887.69 .3734173 .0079522
+ 656960.75 .3765070 .0080710
+ 657033.81 .3821968 .0080513
+ 657106.94 .3807655 .0080239
+ 657180.19 .3681802 .0078096
+ 657253.31 .3658815 .0077144
+ 657326.44 .3713367 .0077850
+ 657399.69 .3840187 .0081081
+ 657472.88 .3703269 .0078650
+ 657546.00 .3814854 .0080002
+ 657619.19 .3709982 .0079392
+ 657692.50 .3698889 .0079309
+ 657765.75 .3932353 .0083184
+ 657838.94 .3841649 .0081825
+ 657912.31 .3879871 .0081735
+ 657985.56 .3900702 .0082525
+ 658058.81 .3904899 .0082989
+ 658132.06 .3706127 .0079888
+ 658205.50 .3939487 .0084560
+ 658278.75 .3851098 .0082944
+ 658352.06 .3897582 .0084144
+ 658425.50 .3976037 .0085893
+ 658498.88 .3893688 .0083474
+ 658572.19 .3889788 .0084084
+ 658645.69 .3779310 .0080917
+ 658719.06 .3920659 .0083188
+ 658792.44 .3858235 .0080803
+ 658865.81 .3886921 .0080738
+ 658939.31 .3870456 .0081378
+ 659012.75 .3863087 .0080690
+ 659086.19 .3907830 .0081301
+ 659159.75 .3672611 .0076403
+ 659233.19 .3767237 .0079264
+ 659306.69 .3752840 .0079558
+ 659380.12 .3962877 .0082731
+ 659453.75 .3800526 .0079898
+ 659527.25 .3734001 .0079638
+ 659600.75 .3858111 .0081316
+ 659674.44 .3814636 .0080784
+ 659747.94 .3775246 .0080667
+ 659821.50 .3850856 .0081758
+ 659895.06 .3900502 .0082564
+ 659968.75 .3887604 .0082138
+ 660042.38 .3880631 .0082572
+ 660115.94 .3822891 .0081795
+ 660189.69 .3890652 .0082704
+ 660263.31 .3825941 .0081225
+ 660336.94 .3769704 .0079241
+ 660410.62 .3733516 .0078886
+ 660484.38 .3781074 .0079441
+ 660558.06 .3824538 .0080632
+ 660631.75 .3771881 .0079031
+ 660705.56 .3923497 .0082640
+ 660779.31 .3830569 .0080882
+ 660853.00 .3820079 .0080368
+ 660926.75 .3838158 .0081051
+ 661000.62 .3928104 .0083333
+ 661074.38 .3920256 .0082070
+ 661148.12 .3845861 .0080684
+ 661222.06 .3912912 .0081918
+ 661295.88 .3936810 .0082153
+ 661369.69 .3988433 .0083426
+ 661443.50 .4018219 .0083645
+ 661517.44 .4032387 .0082922
+ 661591.31 .3929093 .0081369
+ 661665.19 .3772252 .0078282
+ 661739.19 .3961592 .0082752
+ 661813.06 .3878821 .0081191
+ 661886.94 .3869135 .0080504
+ 661960.88 .3910265 .0081499
+ 662034.94 .4000739 .0083336
+ 662108.81 .3850490 .0079977
+ 662182.75 .3988859 .0082636
+ 662256.88 .3874255 .0081204
+ 662330.81 .3976484 .0082412
+ 662404.81 .3940846 .0083012
+ 662478.81 .3909943 .0082058
+ 662552.94 .3975896 .0083317
+ 662627.00 .3917920 .0081882
+ 662701.00 .3767721 .0078058
+ 662775.19 .3798433 .0079516
+ 662849.25 .3816740 .0079575
+ 662923.31 .3909435 .0081236
+ 662997.38 .3858556 .0080085
+ 663071.62 .3911968 .0080903
+ 663145.69 .3911148 .0081195
+ 663219.81 .3906180 .0080697
+ 663294.12 .3866333 .0079926
+ 663368.25 .3924407 .0081694
+ 663442.38 .3875644 .0081422
+ 663516.69 .3963782 .0082947
+ 663590.88 .3845840 .0082089
+ 663665.06 .3795070 .0081162
+ 663739.25 .3839535 .0082830
+ 663813.62 .3860452 .0083535
+ 663887.88 .3975631 .0084761
+ 663962.12 .4001005 .0085170
+ 664036.50 .3926407 .0082235
+ 664110.75 .3867852 .0080894
+ 664185.06 .3815498 .0079356
+ 664259.31 .3849020 .0079662
+ 664333.75 .3897718 .0080395
+ 664408.06 .3858353 .0080741
+ 664482.44 .3922366 .0081632
+ 664556.88 .3956497 .0082378
+ 664631.25 .3784465 .0078554
+ 664705.62 .3902411 .0081313
+ 664780.00 .4061092 .0084916
+ 664854.50 .3997882 .0082902
+ 664928.94 .3930530 .0081332
+ 665003.31 .3813187 .0078979
+ 665077.88 .3906460 .0080776
+ 665152.38 .3718040 .0078019
+ 665226.81 .3754042 .0078658
+ 665301.25 .3907289 .0081626
+ 665375.88 .3780988 .0078767
+ 665450.38 .3663114 .0076688
+ 665524.88 .3674166 .0076861
+ 665599.56 .3915381 .0081237
+ 665674.06 .3729954 .0078129
+ 665748.62 .3797167 .0078481
+ 665823.12 .3932488 .0082670
+ 665897.88 .3926955 .0082826
+ 665972.44 .3883051 .0080777
+ 666047.00 .3826642 .0078703
+ 666121.75 .4003093 .0083181
+ 666196.38 .3835942 .0078651
+ 666271.00 .3981820 .0081389
+ 666345.69 .3945830 .0080868
+ 666420.44 .4039038 .0082348
+ 666495.12 .4008083 .0081470
+ 666569.81 .3835807 .0078144
+ 666644.62 .3978076 .0081136
+ 666719.31 .3984471 .0080755
+ 666794.06 .4024082 .0081911
+ 666868.75 .3856442 .0079417
+ 666943.69 .3992501 .0081641
+ 667018.44 .4028495 .0082394
+ 667093.19 .3829142 .0079221
+ 667168.12 .3968530 .0082046
+ 667242.88 .3946344 .0081977
+ 667317.69 .3908318 .0081493
+ 667392.50 .3972332 .0082636
+ 667467.50 .4052925 .0084255
+ 667542.31 .3866881 .0080521
+ 667617.19 .3935661 .0081324
+ 667692.19 .3815794 .0079105
+ 667767.06 .3774286 .0078683
+ 667841.94 .4006740 .0082744
+ 667917.00 .4064538 .0082893
+ 667991.94 .3962081 .0080985
+ 668066.88 .3854676 .0078516
+ 668141.81 .4031812 .0082171
+ 668216.88 .4162067 .0084840
+ 668291.88 .3985856 .0081046
+ 668366.88 .3884063 .0079753
+ 668442.00 .3869878 .0080034
+ 668517.00 .3939822 .0081231
+ 668592.00 .4080825 .0084312
+ 668667.06 .3831863 .0079084
+ 668742.25 .3982114 .0082321
+ 668817.25 .3891042 .0080487
+ 668892.38 .3994933 .0082078
+ 668967.56 .3863410 .0079548
+ 669042.69 .3930143 .0080868
+ 669117.75 .3804517 .0078039
+ 669192.88 .3923317 .0079279
+ 669268.19 .3946443 .0079348
+ 669343.31 .3934174 .0079109
+ 669418.50 .4001592 .0081064
+ 669493.81 .3882105 .0078406
+ 669568.94 .3957223 .0080835
+ 669644.19 .3935986 .0081384
+ 669719.38 .3948257 .0082119
+ 669794.75 .4068633 .0084294
+ 669870.00 .3803601 .0079101
+ 669945.19 .3921015 .0080858
+ 670020.62 .3916813 .0082580
+ 670095.88 .3933508 .0081260
+ 670171.19 .4116068 .0085372
+ 670246.50 .3883961 .0080106
+ 670321.94 .4007005 .0081886
+ 670397.25 .4107257 .0083810
+ 670472.56 .3833724 .0078586
+ 670548.06 .3910463 .0079909
+ 670623.44 .4021987 .0082092
+ 670698.81 .4033985 .0081675
+ 670774.19 .3942943 .0079804
+ 670849.75 .3946481 .0080864
+ 670925.12 .4133911 .0083413
+ 671000.56 .3917091 .0080374
+ 671076.12 .3902781 .0080183
+ 671151.62 .4022060 .0082215
+ 671227.06 .3957025 .0080851
+ 671302.56 .3939849 .0081118
+ 671378.19 .3957593 .0081300
+ 671453.69 .3713194 .0076771
+ 671529.19 .4074820 .0082952
+ 671604.88 .3961695 .0081015
+ 671680.38 .4014958 .0081588
+ 671755.94 .4057540 .0081765
+ 671831.50 .3968888 .0081497
+ 671907.25 .3947500 .0080990
+ 671982.81 .4008299 .0081786
+ 672058.44 .3999993 .0081113
+ 672134.19 .3993311 .0081977
+ 672209.81 .4176429 .0084743
+ 672285.44 .3892418 .0079837
+ 672361.12 .4067801 .0083116
+ 672436.94 .3976181 .0081270
+ 672512.62 .3758599 .0076229
+ 672588.31 .3865609 .0079179
+ 672664.12 .3911657 .0079660
+ 672739.88 .4127461 .0084701
+ 672815.56 .4032621 .0082751
+ 672891.50 .4021116 .0083069
+ 672967.25 .4049674 .0083391
+ 673043.00 .3969792 .0081652
+ 673118.81 .3831038 .0078851
+ 673194.75 .4004358 .0082024
+ 673270.50 .3990103 .0082206
+ 673346.38 .3824159 .0078732
+ 673422.31 .4050827 .0082244
+ 673498.19 .4014738 .0082208
+ 673574.00 .4045337 .0081724
+ 673649.88 .3929937 .0079169
+ 673725.94 .4166610 .0083703
+ 673801.81 .4057335 .0082343
+ 673877.75 .4052421 .0082094
+ 673953.81 .4112855 .0084184
+ 674029.75 .4139658 .0084035
+ 674105.69 .4010398 .0082101
+ 674181.62 .4044643 .0081229
+ 674257.75 .3982958 .0080945
+ 674333.75 .3831934 .0077991
+ 674409.75 .3814924 .0077810
+ 674485.94 .4101394 .0082222
+ 674561.94 .4007702 .0080270
+ 674638.00 .3852075 .0077396
+ 674714.00 .3837524 .0077614
+ 674790.25 .3941405 .0080467
+ 674866.31 .4060565 .0082978
+ 674942.44 .3947035 .0081951
+ 675018.62 .3981412 .0082240
+ 675094.75 .4157090 .0086366
+ 675170.88 .4031272 .0084361
+ 675247.06 .4105696 .0086073
+ 675323.31 .3943278 .0082636
+ 675399.50 .3866232 .0081805
+ 675475.69 .3820705 .0081069
+ 675552.00 .4018454 .0085928
+ 675628.25 .3896336 .0082613
+ 675704.44 .4012312 .0084113
+ 675780.69 .4038394 .0084937
+ 675857.06 .3875206 .0080770
+ 675933.31 .3873598 .0080229
+ 676009.62 .4020338 .0081570
+ 676086.06 .4108582 .0083446
+ 676162.31 .4029741 .0081710
+ 676238.62 .4055838 .0082237
+ 676314.94 .3964302 .0080362
+ 676391.44 .4013613 .0081198
+ 676467.81 .3990060 .0080802
+ 676544.12 .4041069 .0080931
+ 676620.69 .4084795 .0082495
+ 676697.06 .3933576 .0079605
+ 676773.44 .3896534 .0078534
+ 676849.88 .3975025 .0080960
+ 676926.44 .3947583 .0080201
+ 677002.88 .4018204 .0081094
+ 677079.31 .3933895 .0079691
+ 677155.94 .4100260 .0082713
+ 677232.44 .4067533 .0082422
+ 677308.94 .3922461 .0079550
+ 677385.56 .4103459 .0082379
+ 677462.06 .3986435 .0080596
+ 677538.62 .3909043 .0078808
+ 677615.12 .4084761 .0082151
+ 677691.88 .3890048 .0078781
+ 677768.44 .4093669 .0082191
+ 677845.00 .4051915 .0081992
+ 677921.75 .3994764 .0080623
+ 677998.38 .4061320 .0082004
+ 678075.00 .4035780 .0081827
+ 678151.62 .3987864 .0081446
+ 678228.38 .3858581 .0077666
+ 678305.06 .3895880 .0078271
+ 678381.75 .4062991 .0080849
+ 678458.56 .3981250 .0080735
+ 678535.25 .3930168 .0079329
+ 678612.00 .4062372 .0082237
+ 678688.69 .4064986 .0082883
+ 678765.56 .4025797 .0081357
+ 678842.31 .3967298 .0080662
+ 678919.06 .4086010 .0083308
+ 678996.00 .4151260 .0083233
+ 679072.81 .4025896 .0080911
+ 679149.62 .4133162 .0083295
+ 679226.44 .4107869 .0082721
+ 679303.38 .4019001 .0080744
+ 679380.25 .4161499 .0083412
+ 679457.12 .4023134 .0081380
+ 679534.12 .4051390 .0082752
+ 679611.00 .3992399 .0080556
+ 679687.88 .3978818 .0081133
+ 679764.81 .4071370 .0082686
+ 679841.88 .3945701 .0079754
+ 679918.81 .4048162 .0081557
+ 679995.75 .3984708 .0080564
+ 680072.88 .3965777 .0079121
+ 680149.81 .4065913 .0080284
+ 680226.81 .4042155 .0081401
+ 680303.81 .4043238 .0080170
+ 680380.94 .4012770 .0079509
+ 680458.00 .4051720 .0080429
+ 680535.00 .4007281 .0079021
+ 680612.25 .4046963 .0079075
+ 680689.31 .3957046 .0077343
+ 680766.38 .3980170 .0078046
+ 680843.44 .4071454 .0079949
+ 680920.69 .4045472 .0079762
+ 680997.81 .4206929 .0083046
+ 681074.94 .4083016 .0081548
+ 681152.25 .3844166 .0077593
+ 681229.38 .4009925 .0081296
+ 681306.56 .4065275 .0082437
+ 681383.75 .4170539 .0084396
+ 681461.06 .4166265 .0084171
+ 681538.31 .4062617 .0081469
+ 681615.50 .4134431 .0081917
+ 681692.88 .4223227 .0082893
+ 681770.12 .4146361 .0081568
+ 681847.44 .4003436 .0078185
+ 681924.81 .4087717 .0079954
+ 682002.12 .4004348 .0078951
+ 682079.44 .3967193 .0077803
+ 682156.75 .4032022 .0079534
+ 682234.19 .4176174 .0081897
+ 682311.56 .4064423 .0079387
+ 682388.88 .4014732 .0079984
+ 682466.44 .3921906 .0077414
+ 682543.81 .3961147 .0079085
+ 682621.19 .4159956 .0081946
+ 682698.62 .4158826 .0082227
+ 682776.19 .4274923 .0085252
+ 682853.62 .4144468 .0082403
+ 682931.06 .3994582 .0079689
+ 683008.62 .4043337 .0080294
+ 683086.12 .4123192 .0081827
+ 683163.62 .3906911 .0077339
+ 683241.12 .4089008 .0080880
+ 683318.75 .4172289 .0082700
+ 683396.31 .3997022 .0079776
+ 683473.81 .4119841 .0081280
+ 683551.50 .4185555 .0082856
+ 683629.06 .3972253 .0079145
+ 683706.69 .4092201 .0081692
+ 683784.25 .3984401 .0079539
+ 683862.00 .4014589 .0080426
+ 683939.62 .4004051 .0080614
+ 684017.25 .4118933 .0082086
+ 684095.06 .4126453 .0082886
+ 684172.69 .4043924 .0080542
+ 684250.38 .4173903 .0083245
+ 684328.06 .3949907 .0078024
+ 684405.88 .3969277 .0078768
+ 684483.62 .4212759 .0083978
+ 684561.31 .4254960 .0084308
+ 684639.19 .4026529 .0080286
+ 684716.94 .4035147 .0080474
+ 684794.75 .4188593 .0084385
+ 684872.50 .4169986 .0084062
+ 684950.44 .4028496 .0080286
+ 685028.25 .4097075 .0081391
+ 685106.06 .4232730 .0084352
+ 685184.06 .4063369 .0081487
+ 685261.88 .4128977 .0082337
+ 685339.75 .4084242 .0081453
+ 685417.62 .3954625 .0079449
+ 685495.62 .4154712 .0082374
+ 685573.50 .4128794 .0081839
+ 685651.44 .4055246 .0079994
+ 685729.50 .4120392 .0081874
+ 685807.44 .4132972 .0082251
+ 685885.38 .3931763 .0078363
+ 685963.38 .4052105 .0080947
+ 686041.50 .4084703 .0081416
+ 686119.44 .4098921 .0082104
+ 686197.50 .4151716 .0083088
+ 686275.62 .3997835 .0080668
+ 686353.69 .4034062 .0080523
+ 686431.69 .4031515 .0080217
+ 686509.75 .4069096 .0081356
+ 686588.00 .4101477 .0080945
+ 686666.06 .4108695 .0081660
+ 686744.12 .3985923 .0079435
+ 686822.44 .4023562 .0080281
+ 686900.56 .4162639 .0082488
+ 686978.69 .4078133 .0081164
+ 687056.94 .4090115 .0081262
+ 687135.12 .4046804 .0080877
+ 687213.31 .4177212 .0081712
+ 687291.50 .4246126 .0083380
+ 687369.81 .4100649 .0081401
+ 687448.06 .4160681 .0082754
+ 687526.31 .4043970 .0080421
+ 687604.69 .3921351 .0078188
+ 687682.94 .4106370 .0082226
+ 687761.19 .4279706 .0084690
+ 687839.50 .4036042 .0079915
+ 687917.94 .4110788 .0081111
+ 687996.25 .3986388 .0079465
+ 688074.56 .3976921 .0079313
+ 688153.06 .4118471 .0080907
+ 688231.38 .4127955 .0082008
+ 688309.75 .4044805 .0079482
+ 688388.12 .4114235 .0081698
+ 688466.69 .4138693 .0082198
+ 688545.06 .4053934 .0081472
+ 688623.50 .4001358 .0080251
+ 688702.06 .4143033 .0083131
+ 688780.50 .4080301 .0081597
+ 688858.94 .4119603 .0081931
+ 688937.44 .4030949 .0079173
+ 689016.06 .4033040 .0078988
+ 689094.56 .4100231 .0079501
+ 689173.06 .4033318 .0078577
+ 689251.75 .4129280 .0079742
+ 689330.31 .4040739 .0079495
+ 689408.81 .4128129 .0081861
+ 689487.38 .4135816 .0081884
+ 689566.12 .4131069 .0082881
+ 689644.69 .4145770 .0082944
+ 689723.31 .4079278 .0081372
+ 689802.06 .4096645 .0080775
+ 689880.69 .4089096 .0080330
+ 689959.38 .4224166 .0082004
+ 690038.00 .4188467 .0082097
+ 690116.81 .4107467 .0080311
+ 690195.50 .4232603 .0082220
+ 690274.25 .4066426 .0079577
+ 690353.06 .4178410 .0081895
+ 690431.81 .4132314 .0080519
+ 690510.56 .4135807 .0079711
+ 690589.31 .4197249 .0081320
+ 690668.19 .4210536 .0082426
+ 690747.00 .4122941 .0080050
+ 690825.81 .3937524 .0076833
+ 690904.75 .4056506 .0078900
+ 690983.56 .4266371 .0082734
+ 691062.38 .4218221 .0081544
+ 691141.25 .4155850 .0081090
+ 691220.25 .4110715 .0079914
+ 691299.12 .4168520 .0081163
+ 691378.00 .4195259 .0081523
+ 691457.06 .4149297 .0081153
+ 691536.00 .4043878 .0079478
+ 691614.94 .4182208 .0081530
+ 691694.00 .4066634 .0079439
+ 691772.94 .4186275 .0081599
+ 691851.94 .3970955 .0078550
+ 691930.94 .4064834 .0079693
+ 692010.06 .4147404 .0081171
+ 692089.06 .4243287 .0082907
+ 692168.06 .4132103 .0080523
+ 692247.25 .4202478 .0082392
+ 692326.31 .4090324 .0079729
+ 692405.38 .4221884 .0083393
+ 692484.44 .4146228 .0081053
+ 692563.69 .4034553 .0079503
+ 692642.81 .4032601 .0079293
+ 692721.94 .4133728 .0080196
+ 692801.19 .4330505 .0084015
+ 692880.38 .4065791 .0078628
+ 692959.50 .4055609 .0078142
+ 693038.69 .4121142 .0080043
+ 693118.00 .4059551 .0078927
+ 693197.19 .4149430 .0080520
+ 693276.44 .4043596 .0079228
+ 693355.81 .4128569 .0080431
+ 693435.06 .4057700 .0078946
+ 693514.31 .4082964 .0078846
+ 693593.56 .4146745 .0079305
+ 693673.00 .4126703 .0079029
+ 693752.31 .4196461 .0079884
+ 693831.62 .4190027 .0080228
+ 693911.06 .4107040 .0078516
+ 693990.38 .4283209 .0081894
+ 694069.75 .4311402 .0082748
+ 694149.12 .4062678 .0079525
+ 694228.62 .4054496 .0079458
+ 694308.00 .4208429 .0082542
+ 694387.44 .4036708 .0079454
+ 694467.00 .4077221 .0079886
+ 694546.44 .4271396 .0081509
+ 694625.88 .3997056 .0078133
+ 694705.31 .4099369 .0079914
+ 694784.94 .4173075 .0081199
+ 694864.44 .4167490 .0080969
+ 694943.94 .4121330 .0079792
+ 695023.62 .4095647 .0079836
+ 695103.12 .4194465 .0081317
+ 695182.69 .4180564 .0080797
+ 695262.25 .4259641 .0082158
+ 695341.94 .4151527 .0080427
+ 695421.50 .4126932 .0079949
+ 695501.12 .4157959 .0080534
+ 695580.88 .4135362 .0080199
+ 695660.50 .4166792 .0080758
+ 695740.12 .4085741 .0080114
+ 695819.75 .4057061 .0079890
+ 695899.56 .4226494 .0083798
+ 695979.25 .4267633 .0084070
+ 696058.94 .4198920 .0082538
+ 696138.81 .4079034 .0081148
+ 696218.56 .4160159 .0082193
+ 696298.25 .3999513 .0079855
+ 696378.00 .4150827 .0082728
+ 696457.94 .4066564 .0081497
+ 696537.69 .4065327 .0081208
+ 696617.50 .4213012 .0083163
+ 696697.44 .4284132 .0085563
+ 696777.25 .4198680 .0083784
+ 696857.06 .4219813 .0083906
+ 696937.06 .4142345 .0082997
+ 697016.94 .4189782 .0083715
+ 697096.81 .4131418 .0083066
+ 697176.69 .4305650 .0085370
+ 697256.69 .4050956 .0081265
+ 697336.62 .4240709 .0084399
+ 697416.56 .4248311 .0083619
+ 697496.62 .4157418 .0081692
+ 697576.56 .4018287 .0078766
+ 697656.56 .4183312 .0082455
+ 697736.50 .4151328 .0081201
+ 697816.69 .4158876 .0081662
+ 697896.69 .4238207 .0081967
+ 697976.69 .4102397 .0080672
+ 698056.88 .4145984 .0081293
+ 698136.94 .4154872 .0081974
+ 698217.00 .4072710 .0079636
+ 698297.06 .4270368 .0083126
+ 698377.31 .4176618 .0082399
+ 698457.44 .4286359 .0084869
+ 698537.50 .4128415 .0081317
+ 698617.81 .4162496 .0081455
+ 698697.94 .4198178 .0082856
+ 698778.12 .4128981 .0081768
+ 698858.31 .4196502 .0082518
+ 698938.62 .4039706 .0079589
+ 699018.81 .4193960 .0082690
+ 699099.06 .4184283 .0082864
+ 699179.44 .4234041 .0083627
+ 699259.62 .4034809 .0080324
+ 699339.94 .4010353 .0080125
+ 699420.19 .4352883 .0085954
+ 699500.62 .4185893 .0083524
+ 699580.94 .4229140 .0083605
+ 699661.19 .4284441 .0084367
+ 699741.69 .4171523 .0082184
+ 699822.00 .4214121 .0083152
+ 699902.38 .4154252 .0081089
+ 699982.75 .4112217 .0080405
+ 700063.25 .4150186 .0080885
+ 700143.69 .4140732 .0080485
+ 700224.06 .4055291 .0079785
+ 700304.62 .3990386 .0079402
+ 700385.06 .4164703 .0082613
+ 700465.56 .4160996 .0083665
+ 700546.00 .4197523 .0083873
+ 700626.62 .4108537 .0082482
+ 700707.12 .4097801 .0081990
+ 700787.62 .4257106 .0085894
+ 700868.31 .4262376 .0084525
+ 700948.81 .4218196 .0083438
+ 701029.38 .4228788 .0084045
+ 701109.94 .4041780 .0080709
+ 701190.62 .4218624 .0083335
+ 701271.25 .4131035 .0081621
+ 701351.81 .4286470 .0084653
+ 701432.62 .4130972 .0082194
+ 701513.25 .4297997 .0086077
+ 701593.88 .4262608 .0084946
+ 701674.69 .4202819 .0083971
+ 701755.38 .4215908 .0084761
+ 701836.06 .4144734 .0083036
+ 701916.75 .4127684 .0082702
+ 701997.62 .4258932 .0085269
+ 702078.31 .4136445 .0081956
+ 702159.06 .4214971 .0083666
+ 702240.00 .4155670 .0081966
+ 702320.75 .4224180 .0083392
+ 702401.56 .4221248 .0082699
+ 702482.31 .4090795 .0079829
+ 702563.31 .4328020 .0084212
+ 702644.12 .4364719 .0085846
+ 702724.94 .4115631 .0080721
+ 702805.94 .4157079 .0082403
+ 702886.81 .4180213 .0083436
+ 702967.69 .4114505 .0083692
+ 703048.62 .4077239 .0082530
+ 703129.69 .4235051 .0084948
+ 703210.56 .4085499 .0081839
+ 703291.50 .4198100 .0083138
+ 703372.62 .4225048 .0082423
+ 703453.56 .4279133 .0083179
+ 703534.56 .4138881 .0080593
+ 703615.56 .4216234 .0081596
+ 703696.69 .4188960 .0081483
+ 703777.75 .4254670 .0083039
+ 703858.75 .4174740 .0082636
+ 703940.00 .4113141 .0082091
+ 704021.06 .4084135 .0081461
+ 704102.12 .4311468 .0085232
+ 704183.19 .4157555 .0083210
+ 704264.44 .4258900 .0084174
+ 704345.56 .4157252 .0082435
+ 704426.69 .4309600 .0085505
+ 704508.00 .4255773 .0083798
+ 704589.19 .4323705 .0085286
+ 704670.31 .4114362 .0081104
+ 704751.50 .4104266 .0080957
+ 704832.88 .4198043 .0082807
+ 704914.12 .4092767 .0080924
+ 704995.31 .4147751 .0080982
+ 705076.75 .4191849 .0081795
+ 705158.00 .4119137 .0081246
+ 705239.25 .4111142 .0081120
+ 705320.56 .4083955 .0080844
+ 705402.00 .4109072 .0082022
+ 705483.31 .3823622 .0077023
+ 705564.62 .3891785 .0078786
+ 705646.12 .3735452 .0076692
+ 705727.50 .3976689 .0081112
+ 705808.88 .4173790 .0084105
+ 705890.25 .4277645 .0086315
+ 705971.81 .4107310 .0082985
+ 706053.25 .4169087 .0083675
+ 706134.62 .4074444 .0081181
+ 706216.25 .4220915 .0082932
+ 706297.69 .4224193 .0083620
+ 706379.19 .4245887 .0084283
+ 706460.81 .4259344 .0084742
+ 706542.31 .4173819 .0083234
+ 706623.81 .4136302 .0082979
+ 706705.38 .4262590 .0085637
+ 706787.06 .4265988 .0085570
+ 706868.62 .4198734 .0084089
+ 706950.19 .4077859 .0081655
+ 707031.88 .4326068 .0085640
+ 707113.50 .4144099 .0082673
+ 707195.12 .4303879 .0083973
+ 707276.75 .4335188 .0084575
+ 707358.50 .4337595 .0084301
+ 707440.19 .4296612 .0083014
+ 707521.88 .4199502 .0082304
+ 707603.69 .4153209 .0080539
+ 707685.38 .4299313 .0083365
+ 707767.06 .4279220 .0082786
+ 707848.81 .4253200 .0083152
+ 707930.69 .4224855 .0082766
+ 708012.44 .4363425 .0084690
+ 708094.25 .4227062 .0082948
+ 708176.19 .4084994 .0080814
+ 708257.94 .4202643 .0081859
+ 708339.75 .4356897 .0083915
+ 708421.56 .4310724 .0083588
+ 708503.56 .4311081 .0084033
+ 708585.44 .4206428 .0082468
+ 708667.31 .4133234 .0081230
+ 708749.31 .4108234 .0081237
+ 708831.25 .4248782 .0084057
+ 708913.12 .4285929 .0085169
+ 708995.06 .4260195 .0084512
+ 709077.12 .4278431 .0084056
+ 709159.12 .4188130 .0082201
+ 709241.06 .4214980 .0082405
+ 709323.19 .4200174 .0081222
+ 709405.19 .4118913 .0080348
+ 709487.19 .4155561 .0081022
+ 709569.25 .4364612 .0084087
+ 709651.44 .4304459 .0082737
+ 709733.50 .4180307 .0080461
+ 709815.56 .4208314 .0082120
+ 709897.75 .4108244 .0079559
+ 709979.88 .4276775 .0082498
+ 710062.00 .4405324 .0084734
+ 710144.12 .4127125 .0080524
+ 710226.38 .4309074 .0083721
+ 710308.56 .4104171 .0079281
+ 710390.69 .4237933 .0081963
+ 710473.06 .4235150 .0082228
+ 710555.25 .4309455 .0083940
+ 710637.44 .4250762 .0082263
+ 710719.69 .4281839 .0083747
+ 710802.06 .4307675 .0084612
+ 710884.31 .4135340 .0081530
+ 710966.56 .4106007 .0081466
+ 711049.00 .4361805 .0085280
+ 711131.31 .4350097 .0084863
+ 711213.62 .4387495 .0085824
+ 711295.94 .4219683 .0081554
+ 711378.44 .4296543 .0083645
+ 711460.75 .4269340 .0082457
+ 711543.12 .4282198 .0082510
+ 711625.69 .4258424 .0081903
+ 711708.06 .4372549 .0083471
+ 711790.50 .4376282 .0083418
+ 711873.06 .4283346 .0081395
+ 711955.50 .4344044 .0082307
+ 712037.94 .4282467 .0080880
+ 712120.38 .4472910 .0085080
+ 712203.06 .4222714 .0080028
+ 712285.56 .4264873 .0081922
+ 712368.06 .4322444 .0082528
+ 712450.75 .4234892 .0081540
+ 712533.25 .4173514 .0079485
+ 712615.81 .4401385 .0083490
+ 712698.38 .4280847 .0081118
+ 712781.12 .4337419 .0082096
+ 712863.69 .4371760 .0082438
+ 712946.31 .4134213 .0078934
+ 713029.12 .4357032 .0082759
+ 713111.75 .4310193 .0082836
+ 713194.38 .4172563 .0080473
+ 713277.06 .4263949 .0082680
+ 713359.88 .4212467 .0082723
+ 713442.56 .4063886 .0080526
+ 713525.31 .4084766 .0080726
+ 713608.19 .4119071 .0081883
+ 713690.94 .4330291 .0085103
+ 713773.69 .4201438 .0083049
+ 713856.44 .4253501 .0083354
+ 713939.38 .3998221 .0077802
+ 714022.19 .4177095 .0082245
+ 714105.00 .4127060 .0080398
+ 714187.94 .4068234 .0079364
+ 714270.81 .4139797 .0081131
+ 714353.62 .4048022 .0078854
+ 714436.50 .4160667 .0080973
+ 714519.56 .4250970 .0082064
+ 714602.44 .4223494 .0081066
+ 714685.38 .4034821 .0078765
+ 714768.44 .4256636 .0082064
+ 714851.38 .4153002 .0079640
+ 714934.38 .4130884 .0078950
+ 715017.31 .4146485 .0079850
+ 715100.44 .4327951 .0082969
+ 715183.44 .4094342 .0078743
+ 715266.44 .4056099 .0078139
+ 715349.62 .4297183 .0082359
+ 715432.69 .4260992 .0081503
+ 715515.75 .4109444 .0078786
+ 715598.81 .4300832 .0082892
+ 715682.06 .4193532 .0080614
+ 715765.19 .4361476 .0084266
+ 715848.25 .4243089 .0082067
+ 715931.56 .4183396 .0081498
+ 716014.69 .4173689 .0080561
+ 716097.88 .4286728 .0083542
+ 716181.06 .4152246 .0080562
+ 716264.38 .4171324 .0080973
+ 716347.56 .4298304 .0082771
+ 716430.81 .4219676 .0082426
+ 716514.19 .4170617 .0081769
+ 716597.44 .4333804 .0084553
+ 716680.69 .4288466 .0084580
+ 716764.12 .4238009 .0084289
+ 716847.38 .4253858 .0085021
+ 716930.69 .4110962 .0083206
+ 717014.00 .4198898 .0083948
+ 717097.50 .4263401 .0086081
+ 717180.88 .4180633 .0084444
+ 717264.19 .4277312 .0086138
+ 717347.75 .4206682 .0084126
+ 717431.12 .4398049 .0086944
+ 717514.56 .4333196 .0085315
+ 717597.94 .4219688 .0081715
+ 717681.56 .4328620 .0083364
+ 717765.00 .4218179 .0081813
+ 717848.44 .4226352 .0082456
+ 717932.12 .4116614 .0079791
+ 718015.62 .4290553 .0082197
+ 718099.12 .4297562 .0082852
+ 718182.62 .4237770 .0081625
+ 718266.31 .4155650 .0080421
+ 718349.88 .4187312 .0080401
+ 718433.44 .4212881 .0081450
+ 718517.19 .4288518 .0082553
+ 718600.75 .4108158 .0080295
+ 718684.38 .4277097 .0082899
+ 718768.00 .4336801 .0083591
+ 718851.81 .4216071 .0081755
+ 718935.44 .4325616 .0084434
+ 719019.12 .4312929 .0084458
+ 719102.94 .4200936 .0080743
+ 719186.62 .4330541 .0082321
+ 719270.38 .4202438 .0080186
+ 719354.06 .4290706 .0081651
+ 719438.00 .4226564 .0080785
+ 719521.75 .4346479 .0082399
+ 719605.50 .4305112 .0082025
+ 719689.44 .4338036 .0083073
+ 719773.25 .4126583 .0078442
+ 719857.06 .4226243 .0081036
+ 719940.88 .4239154 .0081413
+ 720024.88 .4280859 .0082077
+ 720108.75 .4305558 .0082959
+ 720192.62 .4279056 .0082157
+ 720276.69 .4257793 .0083568
+ 720360.56 .4238236 .0083374
+ 720444.50 .4216766 .0083209
+ 720528.44 .4208297 .0082626
+ 720612.50 .4311102 .0084517
+ 720696.50 .4301251 .0083305
+ 720780.44 .4237354 .0083185
+ 720864.62 .4345598 .0083645
+ 720948.62 .4284176 .0083981
+ 721032.62 .4182687 .0081241
+ 721116.62 .4315948 .0083758
+ 721200.88 .4356221 .0084099
+ 721284.94 .4348172 .0084262
+ 721369.00 .4279181 .0083165
+ 721453.25 .4152850 .0080181
+ 721537.38 .4400742 .0084980
+ 721621.50 .4214100 .0081817
+ 721705.62 .4236319 .0082052
+ 721789.94 .4440860 .0085967
+ 721874.12 .4295252 .0082125
+ 721958.25 .4399830 .0084333
+ 722042.62 .4334103 .0083087
+ 722126.81 .4159881 .0080372
+ 722211.06 .4236822 .0081342
+ 722295.44 .4342105 .0083840
+ 722379.75 .4196015 .0080500
+ 722464.00 .4206831 .0080664
+ 722548.25 .4185147 .0080847
+ 722632.75 .4269216 .0082823
+ 722717.06 .4253466 .0082373
+ 722801.38 .4292850 .0083207
+ 722885.88 .4215328 .0082252
+ 722970.25 .4296145 .0083284
+ 723054.62 .4312280 .0082966
+ 723139.00 .4170018 .0080811
+ 723223.56 .4373831 .0084557
+ 723308.00 .4315078 .0083414
+ 723392.38 .4507981 .0087244
+ 723477.00 .4173123 .0081088
+ 723561.50 .4208486 .0081766
+ 723645.94 .4156142 .0081047
+ 723730.44 .4301850 .0083400
+ 723815.12 .4271487 .0081696
+ 723899.62 .4303377 .0082339
+ 723984.19 .4232984 .0080866
+ 724068.88 .4383105 .0083199
+ 724153.44 .4324639 .0083201
+ 724238.00 .4142441 .0079329
+ 724322.62 .4195243 .0080482
+ 724407.38 .4344757 .0083116
+ 724492.00 .4412675 .0084430
+ 724576.62 .4205701 .0081072
+ 724661.44 .4141032 .0081649
+ 724746.12 .4313839 .0085293
+ 724830.81 .4278807 .0084398
+ 724915.50 .4245834 .0084976
+ 725000.38 .4228443 .0084012
+ 725085.12 .4181263 .0083379
+ 725169.88 .4447890 .0087617
+ 725254.75 .4374713 .0087097
+ 725339.56 .4251117 .0084384
+ 725424.31 .4336454 .0086057
+ 725509.12 .4401616 .0087186
+ 725594.12 .4345720 .0085407
+ 725678.94 .4317623 .0084861
+ 725763.81 .4421878 .0087015
+ 725848.81 .4256579 .0082861
+ 725933.69 .4167919 .0080904
+ 726018.56 .4210583 .0081020
+ 726103.50 .4219032 .0081559
+ 726188.56 .4357781 .0083418
+ 726273.50 .4147107 .0079780
+ 726358.44 .4325393 .0082624
+ 726443.62 .4348401 .0084015
+ 726528.56 .4255668 .0083677
+ 726613.56 .4246561 .0082355
+ 726698.56 .4238437 .0082843
+ 726783.75 .4247818 .0083866
+ 726868.81 .4311017 .0084694
+ 726953.88 .4204287 .0082922
+ 727039.12 .4446149 .0087298
+ 727124.19 .4368664 .0085352
+ 727209.31 .4236082 .0082797
+ 727294.56 .4206477 .0082180
+ 727379.69 .4195169 .0081472
+ 727464.81 .4480577 .0086792
+ 727550.00 .4382513 .0085015
+ 727635.31 .4244549 .0083034
+ 727720.50 .4398185 .0085996
+ 727805.75 .4371203 .0085835
+ 727891.12 .4216915 .0082683
+ 727976.38 .4427615 .0086171
+ 728061.62 .4305504 .0084153
+ 728146.88 .4394886 .0084897
+ 728232.31 .4371531 .0084476
+ 728317.62 .4437292 .0085020
+ 728402.94 .4193793 .0081164
+ 728488.44 .4315249 .0083743
+ 728573.75 .4391329 .0085955
+ 728659.12 .4193906 .0081559
+ 728744.50 .4252754 .0082762
+ 728830.00 .4353895 .0084790
+ 728915.44 .4421682 .0086470
+ 729000.81 .4256642 .0083515
+ 729086.44 .4335455 .0084705
+ 729171.88 .4421432 .0086643
+ 729257.31 .4163516 .0081851
+ 729342.81 .4375257 .0085267
+ 729428.44 .4227656 .0082938
+ 729514.00 .4408708 .0085596
+ 729599.50 .4292135 .0082754
+ 729685.19 .4235997 .0081770
+ 729770.75 .4313761 .0082442
+ 729856.31 .4314890 .0081793
+ 729941.88 .4344359 .0082692
+ 730027.62 .4394197 .0083697
+ 730113.25 .4373267 .0083964
+ 730198.88 .4354139 .0083030
+ 730284.69 .4312262 .0082235
+ 730370.38 .4384909 .0083431
+ 730456.00 .4478326 .0084587
+ 730541.69 .4353420 .0082013
+ 730627.56 .4260215 .0080029
+ 730713.31 .4352003 .0081674
+ 730799.00 .4306186 .0080764
+ 730884.94 .4207827 .0078809
+ 730970.69 .4326493 .0080249
+ 731056.50 .4276098 .0080621
+ 731142.25 .4238106 .0080234
+ 731228.25 .4306189 .0080326
+ 731314.06 .4304259 .0080834
+ 731399.88 .4232207 .0080730
+ 731485.94 .4348399 .0081982
+ 731571.75 .4328825 .0083176
+ 731657.69 .4036941 .0078161
+ 731743.56 .4219956 .0080464
+ 731829.62 .4275042 .0081935
+ 731915.56 .4298354 .0082398
+ 732001.50 .4242141 .0080967
+ 732087.62 .4491513 .0084609
+ 732173.62 .4157607 .0078454
+ 732259.62 .4506561 .0084123
+ 732345.75 .4333173 .0080415
+ 732431.81 .4276372 .0079313
+ 732517.81 .4551137 .0085129
+ 732603.88 .4234059 .0078780
+ 732690.12 .4366646 .0080945
+ 732776.19 .4277971 .0079962
+ 732862.25 .4263344 .0080579
+ 732948.56 .4288215 .0080283
+ 733034.69 .4270586 .0082050
+ 733120.81 .4180477 .0080573
+ 733207.00 .4366794 .0083524
+ 733293.31 .4349825 .0083533
+ 733379.50 .4207473 .0080202
+ 733465.69 .4247997 .0081980
+ 733552.06 .4348344 .0083711
+ 733638.31 .4320966 .0083896
+ 733724.56 .4217463 .0080688
+ 733810.81 .4344734 .0083423
+ 733897.25 .4316450 .0081535
+ 733983.56 .4273969 .0081140
+ 734069.88 .4250289 .0080322
+ 734156.38 .4320139 .0080731
+ 734242.69 .4359867 .0081936
+ 734329.06 .4309329 .0081540
+ 734415.44 .4353522 .0081373
+ 734501.94 .4438135 .0083750
+ 734588.38 .4302124 .0080836
+ 734674.75 .4252733 .0080171
+ 734761.38 .4243134 .0079095
+ 734847.81 .4328600 .0080616
+ 734934.25 .4407015 .0081967
+ 735020.75 .4266540 .0079218
+ 735107.44 .4388478 .0082315
+ 735193.94 .4275763 .0080139
+ 735280.44 .4164639 .0079159
+ 735367.12 .4232515 .0081071
+ 735453.69 .4242076 .0081457
+ 735540.25 .4286088 .0081992
+ 735626.88 .4341832 .0082524
+ 735713.62 .4269192 .0080871
+ 735800.25 .4388265 .0083302
+ 735886.88 .4447148 .0084067
+ 735973.69 .4261197 .0080839
+ 736060.31 .4122138 .0078434
+ 736147.00 .4188996 .0079451
+ 736233.69 .4195744 .0079390
+ 736320.56 .4356312 .0082866
+ 736407.25 .4172546 .0079830
+ 736494.00 .4473402 .0084731
+ 736580.94 .4279383 .0082220
+ 736667.69 .4262131 .0081723
+ 736754.50 .4161769 .0079420
+ 736841.25 .4273711 .0081992
+ 736928.25 .4188051 .0079305
+ 737015.06 .4240195 .0080075
+ 737101.94 .4241844 .0079882
+ 737188.94 .4437242 .0083360
+ 737275.81 .4287532 .0080018
+ 737362.69 .4406243 .0081645
+ 737449.62 .4284458 .0080150
+ 737536.69 .4401894 .0082837
+ 737623.62 .4274772 .0080460
+ 737710.62 .4158780 .0079175
+ 737797.75 .4374411 .0082586
+ 737884.69 .4284658 .0080512
+ 737971.69 .4263617 .0080428
+ 738058.88 .4250474 .0079874
+ 738145.94 .4207039 .0079483
+ 738232.94 .4331255 .0081649
+ 738320.00 .4185081 .0079395
+ 738407.25 .4226186 .0079591
+ 738494.38 .4176738 .0078171
+ 738581.44 .4279317 .0079808
+ 738668.75 .4288582 .0080397
+ 738755.88 .4134309 .0077884
+ 738843.06 .4202537 .0078506
+ 738930.19 .4304395 .0079943
+ 739017.56 .4242305 .0079624
+ 739104.75 .4210826 .0078710
+ 739191.94 .4124823 .0076820
+ 739279.38 .4187732 .0077842
+ 739366.62 .4158789 .0078286
+ 739453.88 .4134054 .0077066
+ 739541.12 .4229578 .0079849
+ 739628.56 .4315627 .0081276
+ 739715.88 .4137565 .0077893
+ 739803.25 .4216518 .0079379
+ 739890.75 .4152074 .0078223
+ 739978.06 .4413922 .0083467
+ 740065.44 .4345590 .0082069
+ 740152.81 .4172217 .0079392
+ 740240.38 .4216521 .0079543
+ 740327.81 .4022760 .0075834
+ 740415.25 .4156256 .0077804
+ 740502.88 .4272854 .0080114
+ 740590.31 .4175214 .0078774
+ 740677.81 .4064964 .0077604
+ 740765.31 .4179482 .0079821
+ 740852.94 .4158728 .0080673
+ 740940.50 .4176822 .0080999
+ 741028.00 .4097381 .0080744
+ 741115.75 .4131311 .0081328
+ 741203.31 .4236381 .0082925
+ 741290.88 .4174897 .0081016
+ 741378.50 .4320326 .0083692
+ 741466.25 .4097598 .0079977
+ 741553.94 .4331807 .0083159
+ 741641.56 .4185660 .0081126
+ 741729.38 .4040549 .0079082
+ 741817.06 .4272098 .0082562
+ 741904.75 .4026111 .0077987
+ 741992.50 .4123497 .0078910
+ 742080.38 .4300161 .0081330
+ 742168.12 .4102939 .0077805
+ 742255.88 .4119412 .0078042
+ 742343.81 .4213270 .0079833
+ 742431.56 .4107197 .0078425
+ 742519.38 .4068843 .0078259
+ 742607.19 .4287676 .0081729
+ 742695.19 .4215281 .0081001
+ 742783.06 .4244140 .0081497
+ 742870.94 .4186949 .0080734
+ 742959.00 .4029975 .0078347
+ 743046.88 .4129117 .0079745
+ 743134.81 .4184787 .0081445
+ 743222.88 .4114394 .0080007
+ 743310.81 .4060846 .0078528
+ 743398.81 .4065677 .0079183
+ 743486.75 .4065540 .0079207
+ 743574.94 .4196313 .0080526
+ 743662.94 .4006373 .0077135
+ 743750.94 .4133904 .0078847
+ 743839.12 .4125535 .0078141
+ 743927.19 .4221837 .0080029
+ 744015.25 .4016594 .0076007
+ 744103.38 .4003503 .0075653
+ 744191.62 .4168256 .0079723
+ 744279.75 .4041854 .0076533
+ 744367.88 .4059329 .0078424
+ 744456.19 .4039330 .0078920
+ 744544.38 .4041249 .0077790
+ 744632.56 .4030714 .0078549
+ 744720.75 .4240424 .0080767
+ 744809.12 .4120044 .0079395
+ 744897.31 .4159065 .0079409
+ 744985.56 .4056563 .0078680
+ 745074.00 .4085859 .0078237
+ 745162.25 .4125459 .0078956
+ 745250.56 .4076726 .0079398
+ 745338.88 .4032100 .0078511
+ 745427.38 .4042410 .0078074
+ 745515.69 .4016554 .0077388
+ 745604.06 .3970835 .0077209
+ 745692.56 .4092295 .0078802
+ 745780.94 .4182458 .0080525
+ 745869.38 .4037370 .0077871
+ 745957.75 .4163167 .0079904
+ 746046.38 .3990650 .0076687
+ 746134.81 .4207212 .0080155
+ 746223.25 .4233725 .0080260
+ 746311.94 .3930937 .0074821
+ 746400.44 .3985177 .0075389
+ 746488.94 .4082395 .0077797
+ 746577.44 .4072945 .0077922
+ 746666.12 .4019189 .0076163
+ 746754.69 .4050478 .0076754
+ 746843.31 .4051981 .0077498
+ 746932.06 .3927293 .0074218
+ 747020.62 .3994395 .0075311
+ 747109.25 .4032896 .0074938
+ 747197.88 .4066038 .0076632
+ 747286.69 .3953580 .0074743
+ 747375.38 .4164141 .0079207
+ 747464.06 .4127497 .0078566
+ 747552.94 .4041376 .0077321
+ 747641.62 .3996533 .0076908
+ 747730.38 .3940189 .0075417
+ 747819.12 .4262977 .0082023
+ 747908.06 .4252020 .0081498
+ 747996.81 .3998054 .0076317
+ 748085.62 .4020971 .0076935
+ 748174.62 .4124593 .0078177
+ 748263.44 .4042713 .0077061
+ 748352.25 .4113359 .0078383
+ 748441.12 .4147645 .0078904
+ 748530.19 .4155003 .0079165
+ 748619.06 .4082738 .0078089
+ 748707.94 .4124433 .0079145
+ 748797.06 .3977644 .0076254
+ 748886.00 .4096469 .0078609
+ 748974.94 .4142455 .0079907
+ 749064.06 .4024026 .0077818
+ 749153.06 .3985993 .0076622
+ 749242.06 .3996841 .0076755
+ 749331.06 .4052241 .0077454
+ 749420.25 .4127013 .0078035
+ 749509.31 .4126143 .0077594
+ 749598.38 .4088580 .0077469
+ 749687.62 .4088826 .0077142
+ 749776.69 .4234908 .0079570
+ 749865.81 .4193304 .0078418
+ 749954.94 .4065846 .0076765
+ 750044.25 .4199002 .0078925
+ 750133.44 .3999563 .0075885
+ 750222.62 .4076541 .0076975
+ 750311.94 .4005562 .0075580
+ 750401.19 .4117302 .0077912
+ 750490.38 .4048325 .0076844
+ 750579.62 .4033206 .0076111
+ 750669.06 .4034733 .0076307
+ 750758.31 .4157127 .0077148
+ 750847.62 .4035016 .0074864
+ 750937.06 .4113478 .0076745
+ 751026.38 .4012505 .0074121
+ 751115.69 .4133619 .0076431
+ 751205.06 .4133464 .0076681
+ 751294.62 .4220555 .0078556
+ 751384.00 .4152630 .0077367
+ 751473.38 .4155342 .0077704
+ 751562.94 .4012745 .0075615
+ 751652.38 .4144700 .0077456
+ 751741.81 .4139594 .0077412
+ 751831.31 .4133361 .0076989
+ 751920.94 .4127616 .0076635
+ 752010.44 .4236307 .0078856
+ 752099.94 .4338817 .0080188
+ 752189.62 .4125771 .0076271
+ 752279.19 .4138154 .0075912
+ 752368.75 .4206679 .0077738
+ 752458.31 .4076284 .0075245
+ 752548.06 .4109206 .0075985
+ 752637.69 .4057394 .0075211
+ 752727.31 .4227840 .0078752
+ 752817.12 .4214352 .0079007
+ 752906.75 .4016967 .0076024
+ 752996.44 .4191452 .0078949
+ 753086.12 .4142040 .0077843
+ 753176.00 .4148555 .0077575
+ 753265.69 .4092051 .0076561
+ 753355.44 .4067382 .0076312
+ 753445.38 .4208634 .0078805
+ 753535.12 .4257694 .0080137
+ 753624.88 .4072296 .0076887
+ 753714.69 .4090571 .0076933
+ 753804.69 .4345852 .0080950
+ 753894.50 .4174160 .0078153
+ 753984.38 .4131898 .0077192
+ 754074.38 .4138513 .0077420
+ 754164.25 .4301242 .0080152
+ 754254.19 .4072385 .0075986
+ 754344.25 .4116012 .0076631
+ 754434.19 .4167699 .0077347
+ 754524.12 .4200788 .0077538
+ 754614.06 .4216715 .0078133
+ 754704.19 .4182852 .0077245
+ 754794.19 .4133607 .0076870
+ 754884.19 .4248837 .0079425
+ 754974.44 .4065533 .0075801
+ 755064.44 .4142162 .0077203
+ 755154.50 .4214181 .0078874
+ 755244.56 .4297646 .0079999
+ 755334.81 .4158166 .0077665
+ 755424.94 .4308575 .0080828
+ 755515.06 .4115974 .0077980
+ 755605.38 .4191548 .0079686
+ 755695.50 .4266752 .0080245
+ 755785.69 .4159729 .0078091
+ 755875.88 .4284121 .0081039
+ 755966.25 .4272289 .0080977
+ 756056.44 .4282638 .0081733
+ 756146.69 .4247391 .0080675
+ 756237.12 .4191246 .0079780
+ 756327.38 .4327735 .0081678
+ 756417.62 .4223388 .0080107
+ 756507.94 .4206673 .0080449
+ 756598.44 .4198169 .0079654
+ 756688.75 .4364897 .0083238
+ 756779.12 .4252782 .0081464
+ 756869.62 .4362087 .0083164
+ 756960.00 .4272647 .0082047
+ 757050.44 .4373062 .0083039
+ 757140.81 .4318759 .0081656
+ 757231.44 .4111259 .0078511
+ 757321.88 .4221787 .0079492
+ 757412.31 .4135865 .0078559
+ 757503.00 .4160950 .0078893
+ 757593.44 .4257009 .0080286
+ 757684.00 .4211796 .0079208
+ 757774.50 .4258544 .0080982
+ 757865.19 .4363111 .0082278
+ 757955.75 .4118811 .0077309
+ 758046.31 .4202561 .0079120
+ 758137.12 .4235920 .0079326
+ 758227.69 .4318743 .0080912
+ 758318.31 .4244347 .0079356
+ 758408.94 .4225766 .0079233
+ 758499.81 .4278767 .0080322
+ 758590.44 .4268965 .0079978
+ 758681.12 .4385443 .0081716
+ 758772.00 .4197993 .0078612
+ 758862.75 .4426044 .0082084
+ 758953.50 .4359797 .0081177
+ 759044.25 .4233293 .0078513
+ 759135.19 .4181085 .0078079
+ 759225.94 .4213308 .0077918
+ 759316.75 .4123763 .0075818
+ 759407.75 .4302867 .0079689
+ 759498.56 .4131104 .0076063
+ 759589.44 .4376627 .0080370
+ 759680.50 .4268851 .0078687
+ 759771.38 .4355358 .0080214
+ 759862.25 .4312511 .0079374
+ 759953.19 .4178160 .0076783
+ 760044.25 .4191591 .0076475
+ 760135.25 .4200989 .0076578
+ 760226.19 .4079131 .0074800
+ 760317.31 .4273356 .0077966
+ 760408.31 .4243745 .0077514
+ 760499.38 .4379421 .0080194
+ 760590.38 .4212875 .0077229
+ 760681.62 .4408417 .0080692
+ 760772.69 .4235222 .0077876
+ 760863.75 .4350601 .0080225
+ 760955.00 .4332069 .0079333
+ 761046.12 .4343805 .0080363
+ 761137.25 .4330676 .0079889
+ 761228.38 .4158597 .0076774
+ 761319.75 .4179318 .0077060
+ 761410.88 .4236554 .0078113
+ 761502.06 .4226482 .0076999
+ 761593.50 .4328603 .0078379
+ 761684.69 .4174690 .0075897
+ 761775.94 .4337236 .0078576
+ 761867.19 .4221776 .0076999
+ 761958.62 .4306421 .0078255
+ 762049.94 .4235863 .0077860
+ 762141.25 .4042958 .0074685
+ 762232.75 .4265561 .0078552
+ 762324.06 .4216702 .0078009
+ 762415.44 .4292821 .0079230
+ 762506.81 .4132616 .0077493
+ 762598.38 .4369346 .0080952
+ 762689.81 .4246816 .0078005
+ 762781.19 .4222394 .0077455
+ 762872.81 .4230953 .0077479
+ 762964.31 .4249080 .0077858
+ 763055.75 .4307403 .0078209
+ 763147.25 .4173218 .0076486
+ 763238.94 .4326129 .0078741
+ 763330.44 .4050295 .0073844
+ 763422.00 .4239987 .0078036
+ 763513.69 .4242086 .0078175
+ 763605.31 .4171855 .0076292
+ 763696.88 .4316978 .0079052
+ 763788.50 .4420809 .0080991
+ 763880.25 .4225412 .0077431
+ 763971.94 .4368687 .0079757
+ 764063.56 .4266081 .0078372
+ 764155.44 .4128443 .0076005
+ 764247.12 .4294818 .0078561
+ 764338.81 .4311709 .0078844
+ 764430.50 .4339604 .0079069
+ 764522.44 .4328024 .0078352
+ 764614.19 .4188224 .0076268
+ 764705.94 .4268327 .0077982
+ 764797.94 .4289353 .0078259
+ 764889.69 .4382068 .0080764
+ 764981.56 .4304286 .0078976
+ 765073.38 .4339896 .0080033
+ 765165.38 .4344144 .0079290
+ 765257.25 .4214043 .0077596
+ 765349.12 .4327999 .0078655
+ 765441.25 .4363998 .0079113
+ 765533.12 .4224468 .0076189
+ 765625.06 .4192013 .0076256
+ 765717.19 .4361621 .0079898
+ 765809.19 .4121770 .0075736
+ 765901.19 .4234923 .0077946
+ 765993.19 .4284518 .0079419
+ 766085.38 .4333257 .0079299
+ 766177.38 .4237210 .0077550
+ 766269.44 .4233644 .0077313
+ 766361.69 .4278091 .0078700
+ 766453.75 .4276080 .0078290
+ 766545.88 .4345174 .0079686
+ 766638.00 .4359263 .0079640
+ 766730.31 .4250211 .0078012
+ 766822.44 .4275302 .0077934
+ 766914.62 .4171509 .0076255
+ 767007.00 .4354329 .0079198
+ 767099.19 .4124587 .0075605
+ 767191.38 .4252965 .0078233
+ 767283.62 .4212299 .0076999
+ 767376.06 .4275977 .0077986
+ 767468.31 .4336337 .0078571
+ 767560.62 .4234377 .0077820
+ 767653.06 .4170725 .0076001
+ 767745.38 .4176045 .0075199
+ 767837.75 .4063600 .0073419
+ 767930.06 .4329965 .0078182
+ 768022.62 .4167201 .0075220
+ 768115.00 .4336491 .0078339
+ 768207.44 .4295881 .0077415
+ 768300.00 .4180854 .0075763
+ 768392.44 .4270232 .0076791
+ 768484.88 .4168170 .0075486
+ 768577.38 .4369279 .0078676
+ 768670.00 .4177948 .0074630
+ 768762.50 .4246231 .0076106
+ 768855.06 .4235599 .0076124
+ 768947.75 .4260974 .0076512
+ 769040.31 .4249518 .0077277
+ 769132.88 .4233443 .0077287
+ 769225.44 .4212270 .0076277
+ 769318.25 .4243551 .0076911
+ 769410.88 .4288892 .0078249
+ 769503.50 .4332549 .0078393
+ 769596.31 .4193277 .0076818
+ 769689.00 .4268054 .0077655
+ 769781.69 .4333188 .0079138
+ 769874.38 .4250892 .0077560
+ 769967.25 .4098723 .0075420
+ 770060.00 .4182702 .0077219
+ 770152.75 .4145012 .0076102
+ 770245.69 .4084409 .0074969
+ 770338.50 .4274848 .0078029
+ 770431.31 .4247394 .0078170
+ 770524.12 .4320132 .0079115
+ 770617.12 .4152585 .0077445
+ 770710.00 .4049886 .0074413
+ 770802.81 .4132675 .0076640
+ 770895.88 .4096075 .0076347
+ 770988.81 .4092447 .0076172
+ 771081.75 .4102822 .0076004
+ 771174.81 .3898903 .0073482
+ 771267.81 .3782069 .0071925
+ 771360.75 .3608577 .0069479
+ 771453.75 .3375361 .0066212
+ 771546.94 .3090357 .0063479
+ 771639.94 .2958478 .0060424
+ 771733.00 .2818921 .0058657
+ 771826.25 .3009251 .0061730
+ 771919.31 .3134338 .0063659
+ 772012.38 .3559358 .0069386
+ 772105.50 .3736375 .0071312
+ 772198.81 .3953812 .0072879
+ 772291.94 .4139299 .0075848
+ 772385.06 .4158974 .0075596
+ 772478.44 .4335894 .0078093
+ 772571.62 .4201131 .0075767
+ 772664.81 .4037327 .0073237
+ 772758.06 .4099476 .0073484
+ 772851.50 .4303044 .0077564
+ 772944.75 .4197694 .0075499
+ 773038.00 .4253115 .0076836
+ 773131.50 .4044594 .0073632
+ 773224.75 .4224215 .0076949
+ 773318.12 .4170567 .0075924
+ 773411.44 .4233829 .0077641
+ 773505.00 .4264681 .0077588
+ 773598.38 .4116735 .0075342
+ 773691.75 .4173733 .0076936
+ 773785.31 .4266395 .0077552
+ 773878.75 .4074126 .0074876
+ 773972.19 .4262686 .0077948
+ 774065.69 .4178821 .0076172
+ 774159.31 .4259809 .0077289
+ 774252.81 .4061555 .0074186
+ 774346.31 .4128747 .0075225
+ 774440.00 .4136879 .0074975
+ 774533.56 .4066862 .0073911
+ 774627.12 .3988128 .0072682
+ 774720.69 .4074924 .0074458
+ 774814.50 .4027433 .0074161
+ 774908.12 .4007470 .0074099
+ 775001.75 .4039038 .0074300
+ 775095.56 .4007322 .0074300
+ 775189.25 .3999842 .0073967
+ 775282.88 .4223031 .0077012
+ 775376.62 .4146920 .0076789
+ 775470.50 .4025800 .0074215
+ 775564.25 .3939840 .0072307
+ 775658.00 .4179597 .0076627
+ 775751.75 .4051973 .0074579
+ 775845.69 .4089171 .0075201
+ 775939.50 .4143982 .0075574
+ 776033.31 .4143005 .0075856
+ 776127.31 .4252525 .0078025
+ 776221.19 .4073370 .0074941
+ 776315.06 .4181771 .0076819
+ 776408.94 .4056302 .0075332
+ 776503.00 .4031446 .0075393
+ 776596.94 .4022492 .0075631
+ 776690.88 .4140520 .0077315
+ 776785.00 .4043477 .0076273
+ 776879.00 .4051089 .0076350
+ 776972.94 .4162608 .0077569
+ 777066.94 .4008219 .0074609
+ 777161.19 .4051261 .0075281
+ 777255.19 .4011198 .0074776
+ 777349.25 .4006351 .0075164
+ 777443.50 .4061987 .0075652
+ 777537.62 .3971215 .0074606
+ 777631.69 .4034148 .0075966
+ 777725.81 .3952858 .0074466
+ 777820.12 .4182068 .0078606
+ 777914.31 .4156299 .0077317
+ 778008.50 .3992528 .0074357
+ 778102.88 .3944667 .0073630
+ 778197.06 .3932195 .0072778
+ 778291.31 .4073375 .0074978
+ 778385.56 .4055396 .0074174
+ 778480.00 .3900541 .0071666
+ 778574.25 .3989968 .0073281
+ 778668.56 .4115879 .0075884
+ 778763.06 .4088151 .0075853
+ 778857.38 .3848068 .0072645
+ 778951.75 .4074610 .0076413
+ 779046.06 .4157584 .0078709
+ 779140.62 .4051323 .0077267
+ 779235.06 .4134819 .0079369
+ 779329.44 .3924505 .0075033
+ 779424.06 .4030766 .0078543
+ 779518.50 .3947351 .0076542
+ 779613.00 .3976509 .0077649
+ 779707.50 .3923763 .0076345
+ 779802.12 .3952726 .0076848
+ 779896.69 .3939792 .0076469
+ 779991.19 .4038517 .0077770
+ 780085.94 .4123741 .0078740
+ 780180.50 .4049849 .0077525
+ 780275.12 .3874147 .0074510
+ 780369.69 .3994588 .0076008
+ 780464.50 .3825171 .0073522
+ 780559.12 .3975083 .0074811
+ 780653.81 .3807144 .0071706
+ 780748.62 .3871352 .0073913
+ 780843.38 .4069177 .0076282
+ 780938.06 .3869946 .0072299
+ 781032.75 .3851991 .0072695
+ 781127.69 .3851086 .0072165
+ 781222.44 .3961035 .0074120
+ 781317.25 .3986341 .0074112
+ 781412.19 .3889031 .0073360
+ 781507.00 .4012917 .0075414
+ 781601.88 .3993178 .0074796
+ 781696.88 .3948009 .0074356
+ 781791.75 .3700035 .0069936
+ 781886.62 .3820376 .0072567
+ 781981.50 .3909993 .0073584
+ 782076.62 .4014134 .0074934
+ 782171.56 .3837154 .0072120
+ 782266.50 .3872043 .0072575
+ 782361.62 .3992850 .0074611
+ 782456.62 .3806737 .0071781
+ 782551.62 .3891940 .0073989
+ 782646.62 .3938831 .0074970
+ 782741.88 .3761071 .0071724
+ 782836.94 .3714183 .0071020
+ 782932.00 .3803098 .0072507
+ 783027.25 .3687226 .0071376
+ 783122.38 .3730199 .0071155
+ 783217.50 .3803219 .0072558
+ 783312.62 .4014853 .0075545
+ 783408.00 .3817201 .0072925
+ 783503.12 .3795271 .0072496
+ 783598.31 .3778110 .0072001
+ 783693.75 .3795918 .0071964
+ 783788.94 .3800966 .0071993
+ 783884.19 .3706876 .0070640
+ 783979.44 .3682061 .0070178
+ 784074.94 .3772049 .0071839
+ 784170.25 .3776393 .0071978
+ 784265.56 .3696665 .0070338
+ 784361.06 .3702131 .0070478
+ 784456.38 .3730017 .0070970
+ 784551.75 .3558531 .0067702
+ 784647.12 .3593116 .0068187
+ 784742.75 .3622508 .0069113
+ 784838.12 .3670304 .0070598
+ 784933.56 .3705998 .0070920
+ 785029.25 .3534768 .0068842
+ 785124.69 .3695683 .0071936
+ 785220.19 .3726980 .0072445
+ 785315.69 .3641068 .0070467
+ 785411.38 .3761931 .0072224
+ 785506.94 .3753901 .0071648
+ 785602.50 .3714990 .0070582
+ 785698.25 .3709399 .0071173
+ 785793.88 .3701439 .0070784
+ 785889.44 .3562260 .0068951
+ 785985.06 .3510526 .0068025
+ 786080.94 .3665543 .0070306
+ 786176.56 .3664187 .0069235
+ 786272.25 .3513764 .0066933
+ 786368.12 .3624520 .0068759
+ 786463.88 .3541485 .0067814
+ 786559.56 .3516488 .0067231
+ 786655.31 .3641296 .0069823
+ 786751.31 .3480933 .0066449
+ 786847.06 .3396204 .0066253
+ 786942.88 .3502675 .0067694
+ 787038.88 .3602223 .0069758
+ 787134.69 .3493482 .0067881
+ 787230.56 .3608024 .0069682
+ 787326.62 .3468252 .0067165
+ 787422.50 .3568780 .0069319
+ 787518.44 .3521167 .0067787
+ 787614.38 .3499443 .0067486
+ 787710.50 .3550788 .0068623
+ 787806.44 .3349096 .0065043
+ 787902.44 .3524554 .0068866
+ 787998.56 .3371185 .0066480
+ 788094.62 .3496002 .0068376
+ 788190.62 .3383519 .0066999
+ 788286.69 .3351611 .0066000
+ 788382.94 .3416305 .0067802
+ 788479.00 .3435136 .0067609
+ 788575.12 .3314618 .0065521
+ 788671.44 .3381743 .0067309
+ 788767.56 .3285246 .0065468
+ 788863.69 .3419863 .0068431
+ 788959.88 .3391937 .0067431
+ 789056.25 .3352601 .0066533
+ 789152.44 .3348402 .0066451
+ 789248.69 .3452189 .0068273
+ 789345.12 .3210672 .0064488
+ 789441.38 .3388508 .0067384
+ 789537.62 .3284225 .0065603
+ 789633.94 .3317941 .0065599
+ 789730.44 .3421016 .0068269
+ 789826.75 .3323945 .0066303
+ 789923.12 .3369334 .0067186
+ 790019.69 .3276482 .0065073
+ 790116.06 .3110810 .0062630
+ 790212.44 .3213406 .0063948
+ 790308.88 .3320766 .0065936
+ 790405.50 .3173759 .0063943
+ 790501.94 .3218043 .0064403
+ 790598.44 .3236336 .0065635
+ 790695.06 .3124778 .0063027
+ 790791.56 .3241242 .0064958
+ 790888.12 .3296985 .0065372
+ 790984.69 .3217601 .0064443
+ 791081.38 .3054125 .0061199
+ 791178.00 .3127343 .0062268
+ 791274.56 .3049235 .0061092
+ 791371.38 .3040212 .0060610
+ 791468.00 .3193328 .0063422
+ 791564.62 .3188829 .0063692
+ 791661.31 .3115343 .0062205
+ 791758.19 .3196670 .0063549
+ 791854.88 .3084228 .0061518
+ 791951.62 .3056194 .0060808
+ 792048.50 .2942825 .0058983
+ 792145.31 .3027647 .0060771
+ 792242.06 .2987285 .0060266
+ 792338.88 .2992080 .0060649
+ 792435.81 .2889583 .0058860
+ 792532.69 .3060319 .0061239
+ 792629.50 .3054409 .0061712
+ 792726.56 .2971689 .0059437
+ 792823.44 .2927933 .0058919
+ 792920.31 .2897678 .0058655
+ 793017.44 .2894328 .0057930
+ 793114.38 .3009750 .0059269
+ 793211.31 .2897413 .0057916
+ 793308.25 .2868685 .0058036
+ 793405.44 .2938226 .0058813
+ 793502.44 .2831110 .0057216
+ 793599.50 .2850932 .0057430
+ 793696.69 .2827621 .0056900
+ 793793.75 .2739895 .0056336
+ 793890.81 .2892673 .0060009
+ 793987.94 .2866158 .0059182
+ 794085.25 .2755034 .0057641
+ 794182.38 .2749743 .0057377
+ 794279.50 .2779820 .0057730
+ 794376.88 .2679918 .0056314
+ 794474.00 .2679427 .0056482
+ 794571.25 .2666941 .0056025
+ 794668.44 .2664195 .0056343
+ 794765.88 .2700084 .0056422
+ 794863.12 .2655228 .0055749
+ 794960.38 .2673358 .0056325
+ 795057.88 .2603424 .0055271
+ 795155.19 .2597495 .0055024
+ 795252.50 .2674800 .0056361
+ 795349.81 .2607319 .0055401
+ 795447.38 .2519649 .0053957
+ 795544.75 .2608175 .0055080
+ 795642.19 .2489887 .0053527
+ 795739.75 .2499862 .0053488
+ 795837.19 .2411630 .0052895
+ 795934.62 .2570669 .0055501
+ 796032.12 .2446492 .0053338
+ 796129.81 .2405969 .0052870
+ 796227.31 .2405536 .0053372
+ 796324.81 .2494210 .0054734
+ 796422.56 .2328089 .0051666
+ 796520.06 .2361816 .0052402
+ 796617.69 .2456937 .0054192
+ 796715.25 .2438101 .0053900
+ 796813.06 .2419820 .0052814
+ 796910.69 .2351674 .0051429
+ 797008.31 .2372110 .0051503
+ 797106.19 .2254069 .0049487
+ 797203.88 .2264120 .0049946
+ 797301.56 .2246508 .0049238
+ 797399.31 .2151238 .0047821
+ 797497.19 .2244076 .0049418
+ 797595.00 .2217546 .0048806
+ 797692.75 .2217375 .0049279
+ 797790.75 .2158466 .0048398
+ 797888.56 .2151300 .0048591
+ 797986.38 .2136649 .0048244
+ 798084.19 .2107541 .0047760
+ 798182.25 .1971115 .0045228
+ 798280.12 .1976591 .0045369
+ 798378.06 .2066467 .0046904
+ 798476.12 .2079265 .0047587
+ 798574.06 .1977619 .0045307
+ 798672.00 .2049038 .0046789
+ 798770.00 .2117727 .0047976
+ 798868.19 .2053074 .0047148
+ 798966.19 .1989332 .0046416
+ 799064.19 .1965378 .0045769
+ 799162.44 .1954906 .0046232
+ 799260.50 .1854746 .0044124
+ 799358.56 .1940313 .0045999
+ 799456.88 .1903747 .0045344
+ 799555.00 .1806686 .0043897
+ 799653.12 .1894584 .0045274
+ 799751.25 .1966571 .0046186
+ 799849.62 .1881170 .0044666
+ 799947.81 .1872608 .0044600
+ 800046.00 .1831355 .0043382
+ 800144.44 .1838969 .0044357
+ 800242.69 .1738348 .0042098
+ 800340.94 .1738642 .0042097
+ 800439.19 .1768397 .0042803
+ 800537.69 .1764334 .0042877
+ 800636.00 .1710545 .0042108
+ 800734.38 .1637254 .0040599
+ 800832.88 .1732672 .0042526
+ 800931.25 .1620337 .0040596
+ 801029.62 .1649753 .0040767
+ 801128.06 .1618511 .0040595
+ 801226.69 .1603320 .0040423
+ 801325.12 .1666442 .0041502
+ 801423.56 .1669112 .0041436
+ 801522.25 .1642787 .0041412
+ 801620.75 .1543245 .0039540
+ 801719.25 .1511706 .0038833
+ 801817.75 .1545226 .0039689
+ 801916.50 .1548998 .0039703
+ 802015.06 .1532916 .0039874
+ 802113.69 .1555351 .0040007
+ 802212.44 .1452446 .0038176
+ 802311.06 .1480633 .0038672
+ 802409.75 .1460638 .0038381
+ 802508.38 .1427381 .0037951
+ 802607.25 .1435083 .0038262
+ 802705.94 .1414313 .0037443
+ 802804.69 .1345056 .0036574
+ 802903.56 .1287567 .0035344
+ 803002.38 .1376169 .0037002
+ 803101.12 .1287464 .0035728
+ 803199.88 .1302814 .0035989
+ 803298.88 .1220752 .0034515
+ 803397.75 .1207615 .0034490
+ 803496.56 .1211778 .0034388
+ 803595.62 .1152208 .0033130
+ 803694.50 .1192138 .0033796
+ 803793.38 .1126344 .0032440
+ 803892.31 .1242420 .0034569
+ 803991.44 .1131664 .0032858
+ 804090.38 .1164830 .0033569
+ 804189.38 .1135146 .0033418
+ 804288.50 .1094441 .0032813
+ 804387.56 .1118824 .0033092
+ 804486.56 .1195658 .0034784
+ 804585.62 .1167913 .0034056
+ 804684.88 .1184975 .0034114
+ 804783.94 .1145810 .0034016
+ 804883.06 .1038734 .0031775
+ 804982.31 .1128559 .0033366
+ 805081.50 .1087616 .0032642
+ 805180.62 .1099059 .0033394
+ 805280.00 .1021799 .0031598
+ 805379.19 .1008104 .0031544
+ 805478.38 .1010483 .0031248
+ 805577.62 .1047969 .0031989
+ 805677.06 .1003349 .0030738
+ 805776.31 .0969717 .0029962
+ 805875.62 .0964035 .0030096
+ 805975.06 .0978405 .0030078
+ 806074.44 .0916678 .0028985
+ 806173.75 .0991144 .0030485
+ 806273.12 .0929754 .0029350
+ 806372.69 .0983595 .0030458
+ 806472.06 .0921500 .0029454
+ 806571.50 .0887444 .0028955
+ 806671.06 .0900262 .0029212
+ 806770.56 .0933340 .0029509
+ 806870.00 .0823651 .0027866
+ 806969.50 .0820761 .0027734
+ 807069.19 .0884617 .0029320
+ 807168.69 .0863047 .0028823
+ 807268.25 .0803762 .0027458
+ 807368.00 .0866348 .0029138
+ 807467.56 .0837418 .0028677
+ 807567.19 .0811837 .0028112
+ 807666.75 .0784499 .0027445
+ 807766.62 .0753352 .0027034
+ 807866.25 .0804633 .0027980
+ 807965.94 .0739199 .0026439
+ 808065.81 .0754582 .0027034
+ 808165.50 .0742325 .0026556
+ 808265.25 .0724846 .0026350
+ 808364.94 .0736628 .0026477
+ 808464.94 .0685721 .0025862
+ 808564.69 .0678372 .0025347
+ 808664.50 .0748725 .0026859
+ 808764.50 .0698969 .0025804
+ 808864.31 .0715477 .0026223
+ 808964.19 .0696855 .0025753
+ 809064.06 .0722078 .0026352
+ 809164.12 .0667586 .0025453
+ 809264.06 .0643594 .0024640
+ 809364.00 .0630087 .0024439
+ 809464.12 .0680609 .0025562
+ 809564.06 .0649126 .0024878
+ 809664.06 .0641112 .0024589
+ 809764.06 .0612843 .0024068
+ 809864.31 .0668784 .0025096
+ 809964.31 .0584642 .0023256
+ 810064.38 .0614965 .0024342
+ 810164.62 .0605401 .0024205
+ 810264.75 .0608724 .0024521
+ 810364.88 .0597486 .0023944
+ 810465.00 .0566947 .0023706
+ 810565.31 .0619036 .0024864
+ 810665.50 .0585174 .0023866
+ 810765.69 .0592128 .0024271
+ 810866.06 .0558386 .0023408
+ 810966.31 .0585903 .0024024
+ 811066.56 .0565053 .0023475
+ 811166.81 .0573116 .0023567
+ 811267.31 .0551058 .0023181
+ 811367.56 .0521155 .0022108
+ 811467.88 .0538412 .0022325
+ 811568.44 .0574171 .0023487
+ 811668.81 .0511547 .0022107
+ 811769.19 .0549220 .0022702
+ 811869.75 .0571182 .0023098
+ 811970.12 .0508181 .0021734
+ 812070.56 .0515984 .0022080
+ 812171.00 .0532941 .0022627
+ 812271.69 .0487894 .0021746
+ 812372.19 .0507387 .0022071
+ 812472.69 .0526099 .0022473
+ 812573.38 .0526763 .0022484
+ 812673.94 .0541597 .0023181
+ 812774.50 .0506906 .0022401
+ 812875.06 .0512165 .0022345
+ 812975.88 .0488065 .0021813
+ 813076.50 .0528971 .0022908
+ 813177.12 .0514050 .0022588
+ 813277.94 .0537127 .0022868
+ 813378.62 .0549290 .0023140
+ 813479.31 .0485899 .0021402
+ 813580.06 .0523978 .0022398
+ 813680.94 .0510501 .0022289
+ 813781.69 .0507118 .0022078
+ 813882.50 .0483708 .0021359
+ 813983.44 .0513828 .0022040
+ 814084.25 .0466901 .0021167
+ 814185.06 .0521058 .0022268
+ 814285.94 .0463130 .0020990
+ 814386.94 .0483500 .0021254
+ 814487.88 .0479179 .0021305
+ 814588.75 .0481459 .0021351
+ 814689.88 .0487039 .0021530
+ 814790.81 .0468405 .0021197
+ 814891.75 .0483924 .0021582
+ 814992.69 .0465722 .0021192
+ 815093.88 .0507422 .0022188
+ 815194.88 .0478091 .0021470
+ 815295.94 .0463130 .0020950
+ 815397.19 .0478916 .0021448
+ 815498.25 .0525559 .0022393
+ 815599.31 .0508579 .0021917
+ 815700.44 .0485220 .0021543
+ 815801.75 .0477585 .0020985
+ 815902.88 .0497281 .0021824
+ 816004.06 .0500396 .0021736
+ 816105.44 .0473064 .0021256
+ 816206.62 .0480024 .0021401
+ 816307.81 .0494185 .0021876
+ 816409.06 .0497180 .0021685
+ 816510.50 .0499149 .0021812
+ 816611.81 .0504524 .0021680
+ 816713.06 .0505087 .0021835
+ 816814.56 .0514332 .0022061
+ 816915.94 .0509827 .0021733
+ 817017.25 .0520828 .0022056
+ 817118.62 .0487808 .0021043
+ 817220.19 .0483323 .0020932
+ 817321.62 .0514393 .0021614
+ 817423.06 .0494498 .0021215
+ 817524.69 .0515662 .0021583
+ 817626.12 .0492275 .0021028
+ 817727.62 .0534225 .0022057
+ 817829.31 .0503582 .0021511
+ 817930.81 .0547533 .0022301
+ 818032.38 .0523569 .0021874
+ 818133.94 .0556006 .0022869
+ 818235.69 .0533781 .0022317
+ 818337.31 .0544850 .0022204
+ 818438.94 .0523701 .0022310
+ 818540.75 .0517878 .0022126
+ 818642.38 .0561770 .0023062
+ 818744.06 .0503350 .0021645
+ 818845.75 .0592693 .0024166
+ 818947.69 .0566522 .0023409
+ 819049.38 .0566202 .0023747
+ 819151.12 .0579280 .0023866
+ 819253.06 .0616665 .0024691
+ 819354.88 .0557414 .0023552
+ 819456.69 .0607129 .0024363
+ 819558.50 .0565985 .0023032
+ 819660.56 .0572593 .0023294
+ 819762.38 .0577486 .0023090
+ 819864.25 .0588193 .0023105
+ 819966.38 .0574779 .0022780
+ 820068.31 .0653033 .0024444
+ 820170.25 .0632465 .0023926
+ 820272.19 .0647917 .0024682
+ 820374.38 .0635249 .0024193
+ 820476.38 .0613818 .0023587
+ 820578.38 .0575720 .0022802
+ 820680.56 .0648238 .0024150
+ 820782.62 .0658965 .0024269
+ 820884.69 .0616139 .0023617
+ 820986.81 .0647797 .0024103
+ 821089.12 .0638854 .0023829
+ 821191.25 .0649026 .0024226
+ 821293.38 .0653056 .0024308
+ 821395.75 .0690883 .0025274
+ 821497.94 .0665646 .0024892
+ 821600.12 .0669405 .0024962
+ 821702.31 .0692463 .0025305
+ 821804.75 .0707797 .0025502
+ 821907.06 .0715195 .0025842
+ 822009.31 .0704562 .0025409
+ 822111.81 .0717382 .0025703
+ 822214.12 .0716721 .0025605
+ 822316.44 .0721044 .0025915
+ 822418.81 .0714526 .0025624
+ 822521.38 .0765727 .0026578
+ 822623.81 .0794405 .0026952
+ 822726.19 .0737173 .0025994
+ 822828.81 .0741998 .0026031
+ 822931.25 .0743624 .0026105
+ 823033.75 .0756696 .0026234
+ 823136.25 .0719033 .0025462
+ 823238.94 .0745401 .0026029
+ 823341.50 .0761272 .0026457
+ 823444.00 .0726773 .0025608
+ 823546.81 .0794870 .0027148
+ 823649.38 .0743158 .0025905
+ 823752.00 .0843781 .0027790
+ 823854.62 .0764133 .0026464
+ 823957.44 .0825240 .0027523
+ 824060.12 .0887910 .0028537
+ 824162.81 .0872959 .0028542
+ 824265.69 .0815117 .0027447
+ 824368.38 .0857366 .0028145
+ 824471.12 .0848697 .0028028
+ 824574.12 .0824980 .0027461
+ 824676.88 .0834050 .0027385
+ 824779.69 .0883161 .0028100
+ 824882.50 .0836467 .0027534
+ 824985.50 .0864182 .0027790
+ 825088.38 .0854725 .0027566
+ 825191.25 .0861527 .0027787
+ 825294.31 .0885581 .0028120
+ 825397.25 .0864918 .0027979
+ 825500.19 .0918129 .0028784
+ 825603.12 .0878416 .0028213
+ 825706.31 .0913221 .0028792
+ 825809.31 .0943753 .0029357
+ 825912.31 .0960047 .0029366
+ 826015.56 .0904275 .0028652
+ 826118.56 .0973114 .0029877
+ 826221.62 .0948033 .0029747
+ 826324.75 .0942637 .0029504
+ 826428.06 .0986143 .0030099
+ 826531.19 .0999363 .0030459
+ 826634.31 .0969215 .0029665
+ 826737.69 .0993217 .0030270
+ 826840.88 .0981395 .0030064
+ 826944.06 .1058851 .0031820
+ 827047.25 .1030779 .0031325
+ 827150.69 .1017503 .0031039
+ 827254.00 .1032678 .0031240
+ 827357.25 .1015701 .0030513
+ 827460.75 .1007447 .0030674
+ 827564.06 .1023469 .0031160
+ 827667.44 .1049544 .0031154
+ 827770.75 .1033359 .0031384
+ 827874.31 .1020088 .0030940
+ 827977.75 .1030772 .0030868
+ 828081.12 .1129674 .0032967
+ 828184.81 .1087099 .0031997
+ 828288.25 .1112793 .0032682
+ 828391.69 .1091135 .0032495
+ 828495.19 .1116189 .0032520
+ 828598.94 .1124887 .0032712
+ 828702.44 .1146268 .0033562
+ 828806.00 .1209731 .0034413
+ 828909.75 .1128224 .0032735
+ 829013.38 .1159652 .0033416
+ 829116.94 .1134382 .0032676
+ 829220.62 .1152721 .0033075
+ 829324.44 .1222401 .0034494
+ 829428.12 .1275754 .0035597
+ 829531.81 .1185289 .0033661
+ 829635.69 .1139285 .0032840
+ 829739.44 .1276126 .0035042
+ 829843.19 .1187214 .0033310
+ 829946.94 .1253754 .0034343
+ 830050.94 .1276605 .0034726
+ 830154.75 .1177464 .0033410
+ 830258.56 .1305237 .0035088
+ 830362.56 .1241506 .0033979
+ 830466.44 .1284398 .0034725
+ 830570.31 .1245897 .0034312
+ 830674.44 .1302252 .0035496
+ 830778.25 .1306972 .0035295
+ 830882.31 .1209713 .0033601
+ 830986.25 .1349666 .0036339
+ 831090.31 .1290544 .0035299
+ 831194.31 .1302153 .0035280
+ 831298.44 .1285322 .0034994
+ 831402.62 .1338713 .0035838
+ 831506.62 .1348373 .0035646
+ 831610.81 .1352918 .0035808
+ 831714.94 .1286360 .0034546
+ 831819.12 .1341971 .0035767
+ 831923.25 .1301627 .0034849
+ 832027.56 .1281299 .0035003
+ 832131.81 .1306516 .0035292
+ 832236.00 .1347094 .0035937
+ 832340.31 .1276726 .0034656
+ 832444.56 .1308594 .0035073
+ 832548.94 .1373586 .0035712
+ 832653.19 .1381862 .0036594
+ 832757.56 .1363965 .0035934
+ 832862.00 .1465647 .0037931
+ 832966.31 .1400346 .0036395
+ 833070.75 .1467220 .0037965
+ 833175.12 .1591881 .0039766
+ 833279.62 .1470721 .0037913
+ 833384.06 .1530129 .0039633
+ 833488.56 .1519879 .0039185
+ 833593.12 .1481670 .0038751
+ 833697.62 .1536573 .0039421
+ 833802.19 .1493126 .0038305
+ 833906.69 .1527665 .0038542
+ 834011.31 .1529112 .0039078
+ 834116.00 .1634360 .0040238
+ 834220.56 .1560715 .0039226
+ 834325.25 .1559049 .0038938
+ 834429.81 .1603421 .0040585
+ 834534.56 .1546438 .0039015
+ 834639.19 .1591086 .0039852
+ 834744.00 .1569207 .0039151
+ 834848.75 .1602057 .0039340
+ 834953.44 .1607881 .0039545
+ 835058.31 .1584922 .0039033
+ 835163.06 .1644295 .0039809
+ 835267.88 .1610005 .0039697
+ 835372.69 .1640505 .0040178
+ 835477.56 .1652469 .0040277
+ 835582.50 .1652636 .0040921
+ 835687.38 .1622109 .0040375
+ 835792.31 .1666444 .0041429
+ 835897.19 .1680948 .0041809
+ 836002.19 .1681565 .0041479
+ 836107.12 .1748083 .0042570
+ 836212.19 .1676226 .0041520
+ 836317.25 .1698895 .0040952
+ 836422.25 .1746557 .0042212
+ 836527.31 .1707591 .0041541
+ 836632.38 .1700516 .0041303
+ 836737.50 .1792615 .0043088
+ 836842.62 .1699557 .0040660
+ 836947.75 .1711349 .0041211
+ 837052.94 .1774417 .0042275
+ 837158.06 .1815621 .0042862
+ 837263.31 .1685303 .0040542
+ 837368.44 .1783673 .0042328
+ 837473.75 .1775150 .0042276
+ 837579.06 .1772646 .0042228
+ 837684.25 .1755052 .0042083
+ 837789.62 .1767820 .0042322
+ 837894.88 .1736584 .0042297
+ 838000.25 .1827695 .0042926
+ 838105.56 .1846442 .0043985
+ 838210.94 .1789995 .0042848
+ 838316.44 .1840436 .0043977
+ 838421.75 .1832051 .0043839
+ 838527.25 .1807742 .0042646
+ 838632.62 .1778174 .0042458
+ 838738.19 .1795195 .0042433
+ 838843.62 .1805382 .0042466
+ 838949.19 .1873192 .0043784
+ 839054.75 .1780338 .0042516
+ 839160.25 .1808990 .0042597
+ 839265.88 .1874885 .0043929
+ 839371.38 .2004497 .0046371
+ 839477.06 .1930017 .0044421
+ 839582.62 .1863159 .0043414
+ 839688.31 .1900996 .0044348
+ 839794.06 .1922591 .0044822
+ 839899.69 .1889232 .0043675
+ 840005.44 .1938406 .0044683
+ 840111.12 .1958442 .0044784
+ 840216.94 .1947633 .0043993
+ 840322.75 .1928912 .0043992
+ 840428.50 .1982477 .0044649
+ 840534.38 .1943545 .0043856
+ 840640.12 .1942074 .0043936
+ 840746.00 .1993479 .0044970
+ 840851.81 .2022855 .0045392
+ 840957.75 .1961884 .0045014
+ 841063.75 .2011209 .0045964
+ 841169.62 .1879591 .0043295
+ 841275.62 .1960648 .0044511
+ 841381.56 .1962319 .0044657
+ 841487.56 .2073169 .0047118
+ 841593.56 .2027690 .0046246
+ 841699.62 .2069325 .0046578
+ 841805.69 .2018580 .0045782
+ 841911.75 .1994065 .0044943
+ 842017.88 .1980854 .0044332
+ 842123.94 .2028946 .0045631
+ 842230.12 .1919209 .0043265
+ 842336.19 .2016820 .0045418
+ 842442.44 .2046429 .0045390
+ 842548.69 .1989950 .0044838
+ 842654.81 .1976510 .0044718
+ 842761.12 .2035645 .0045469
+ 842867.31 .1915935 .0043660
+ 842973.62 .2014467 .0045095
+ 843079.88 .1909809 .0043657
+ 843186.25 .2040041 .0045446
+ 843292.62 .1962611 .0044146
+ 843398.88 .2030143 .0045365
+ 843505.31 .1977794 .0044640
+ 843611.69 .2010866 .0045131
+ 843718.12 .1963650 .0044265
+ 843824.62 .1965266 .0044314
+ 843931.00 .1966553 .0045072
+ 844037.50 .1834484 .0042791
+ 844144.00 .1776889 .0041640
+ 844250.56 .1771908 .0041846
+ 844357.00 .1752226 .0041453
+ 844463.62 .1696829 .0040668
+ 844570.25 .1569721 .0039088
+ 844676.75 .1423087 .0036922
+ 844783.44 .1243831 .0034228
+ 844890.00 .1056451 .0030938
+ 844996.75 .0924566 .0029173
+ 845103.38 .0823075 .0027340
+ 845210.06 .0762699 .0026552
+ 845316.88 .0709361 .0025502
+ 845423.56 .0867961 .0028581
+ 845530.38 .1014255 .0031143
+ 845637.06 .1231207 .0034348
+ 845743.94 .1371737 .0036891
+ 845850.69 .1511079 .0038491
+ 845957.56 .1683336 .0040896
+ 846064.44 .1777251 .0042023
+ 846171.31 .1852515 .0043040
+ 846278.25 .2018157 .0045332
+ 846385.12 .1978318 .0044569
+ 846492.06 .2130723 .0047379
+ 846599.12 .2078124 .0045893
+ 846706.00 .2047771 .0045276
+ 846813.06 .2023543 .0044753
+ 846920.06 .2123286 .0046434
+ 847027.12 .2216447 .0048073
+ 847134.12 .2203815 .0047155
+ 847241.25 .2086739 .0045861
+ 847348.44 .2209735 .0047291
+ 847455.50 .2270165 .0048215
+ 847562.69 .2256565 .0048528
+ 847669.75 .2214922 .0048166
+ 847777.00 .2280016 .0048900
+ 847884.12 .2264573 .0048945
+ 847991.44 .2208408 .0048047
+ 848098.75 .2330353 .0050066
+ 848205.94 .2175104 .0047080
+ 848313.25 .2280075 .0048812
+ 848420.50 .2263971 .0048341
+ 848527.88 .2329455 .0050102
+ 848635.19 .2330226 .0049305
+ 848742.56 .2250172 .0047896
+ 848850.00 .2268163 .0048723
+ 848957.38 .2254025 .0048402
+ 849064.88 .2262815 .0048376
+ 849172.25 .2322394 .0049242
+ 849279.75 .2315696 .0049302
+ 849387.19 .2308539 .0049442
+ 849494.75 .2338260 .0050418
+ 849602.31 .2355982 .0050454
+ 849709.81 .2300311 .0049347
+ 849817.44 .2312331 .0049723
+ 849925.00 .2326389 .0049797
+ 850032.62 .2271626 .0048543
+ 850140.31 .2353212 .0050199
+ 850247.94 .2370118 .0050054
+ 850355.62 .2416472 .0050966
+ 850463.25 .2376584 .0050769
+ 850571.06 .2420359 .0051092
+ 850678.69 .2483456 .0051514
+ 850786.50 .2392740 .0049779
+ 850894.31 .2438096 .0050467
+ 851002.06 .2407678 .0050104
+ 851109.94 .2453078 .0050815
+ 851217.75 .2486348 .0051771
+ 851325.62 .2425165 .0050505
+ 851433.44 .2603630 .0053954
+ 851541.38 .2573403 .0053844
+ 851649.38 .2461626 .0052124
+ 851757.25 .2366925 .0050755
+ 851865.25 .2441574 .0051662
+ 851973.19 .2483388 .0052496
+ 852081.25 .2566158 .0053653
+ 852189.19 .2513759 .0052135
+ 852297.31 .2616616 .0054557
+ 852405.38 .2588582 .0053350
+ 852513.44 .2542413 .0052520
+ 852621.56 .2461748 .0051006
+ 852729.62 .2560814 .0052484
+ 852837.88 .2602571 .0053100
+ 852945.94 .2652418 .0053797
+ 853054.19 .2575867 .0052518
+ 853162.44 .2698435 .0054777
+ 853270.62 .2481820 .0051237
+ 853378.94 .2606962 .0053288
+ 853487.12 .2648923 .0053968
+ 853595.44 .2569088 .0052656
+ 853703.81 .2642174 .0053497
+ 853812.06 .2619917 .0053075
+ 853920.50 .2649584 .0053475
+ 854028.81 .2628257 .0053361
+ 854137.25 .2630552 .0053369
+ 854245.62 .2648362 .0053672
+ 854354.06 .2681036 .0053759
+ 854462.56 .2672646 .0054028
+ 854571.00 .2663172 .0053731
+ 854679.56 .2674019 .0054342
+ 854788.00 .2627849 .0053253
+ 854896.62 .2674200 .0053861
+ 855005.12 .2610733 .0052704
+ 855113.75 .2718031 .0054693
+ 855222.38 .2626060 .0053362
+ 855330.94 .2625670 .0053277
+ 855439.62 .2714720 .0054287
+ 855548.25 .2672011 .0053915
+ 855656.94 .2724693 .0054698
+ 855765.62 .2629347 .0053063
+ 855874.38 .2701598 .0054236
+ 855983.19 .2667536 .0053602
+ 856091.88 .2661696 .0053630
+ 856200.69 .2735180 .0055154
+ 856309.44 .2651595 .0053537
+ 856418.31 .2638887 .0054151
+ 856527.12 .2712166 .0055201
+ 856636.06 .2590019 .0052624
+ 856745.00 .2679176 .0054295
+ 856853.81 .2692758 .0053853
+ 856962.81 .2794923 .0056143
+ 857071.69 .2722229 .0054633
+ 857180.75 .2743307 .0054845
+ 857289.75 .2808625 .0056233
+ 857398.75 .2753849 .0054363
+ 857507.81 .2654640 .0053060
+ 857616.81 .2742892 .0054606
+ 857725.94 .2770344 .0054996
+ 857835.00 .2696157 .0053917
+ 857944.12 .2689504 .0054369
+ 858053.31 .2784204 .0055764
+ 858162.44 .2775420 .0055485
+ 858271.69 .2737932 .0054721
+ 858380.81 .2818054 .0056000
+ 858490.06 .2834993 .0056301
+ 858599.25 .2784082 .0055754
+ 858708.56 .2819524 .0055745
+ 858817.94 .2778041 .0055307
+ 858927.19 .2754201 .0054043
+ 859036.56 .2764906 .0054827
+ 859145.81 .2644190 .0052661
+ 859255.25 .2802993 .0055395
+ 859364.56 .2776907 .0054632
+ 859474.06 .2780471 .0055296
+ 859583.50 .2802540 .0055001
+ 859692.94 .2846175 .0055867
+ 859802.44 .2806288 .0055310
+ 859911.88 .2820967 .0055407
+ 860021.44 .2861046 .0056611
+ 860131.00 .2839828 .0055881
+ 860240.50 .2822521 .0056051
+ 860350.19 .2743740 .0055194
+ 860459.69 .2784815 .0055441
+ 860569.38 .2781458 .0055708
+ 860678.94 .2978877 .0058476
+ 860788.69 .2859492 .0056905
+ 860898.38 .2814319 .0055364
+ 861008.06 .2799253 .0055500
+ 861117.81 .2839133 .0056063
+ 861227.50 .2891306 .0056781
+ 861337.31 .2909145 .0056580
+ 861447.06 .2859381 .0055596
+ 861556.88 .2899935 .0056723
+ 861666.81 .2900120 .0057116
+ 861776.56 .2774263 .0055006
+ 861886.50 .2803051 .0055331
+ 861996.31 .2827349 .0055851
+ 862106.31 .2835726 .0055941
+ 862216.19 .2728083 .0053889
+ 862326.19 .2918859 .0057155
+ 862436.19 .2861979 .0056521
+ 862546.12 .2976187 .0058053
+ 862656.19 .2962566 .0057947
+ 862766.19 .2923037 .0057368
+ 862876.31 .2920492 .0056917
+ 862986.31 .2910302 .0056671
+ 863096.50 .2946990 .0056707
+ 863206.62 .2905312 .0056970
+ 863316.75 .2918186 .0057257
+ 863426.94 .2921383 .0056973
+ 863537.06 .2978284 .0058329
+ 863647.38 .3002958 .0058560
+ 863757.62 .3002020 .0058835
+ 863867.81 .2962581 .0057736
+ 863978.12 .2830022 .0055206
+ 864088.38 .2914698 .0056649
+ 864198.75 .2905959 .0056803
+ 864309.00 .2971329 .0057509
+ 864419.44 .2959220 .0057101
+ 864529.88 .3060583 .0058909
+ 864640.19 .3013526 .0058198
+ 864750.69 .2905061 .0056848
+ 864861.06 .2995492 .0058449
+ 864971.56 .2960272 .0058184
+ 865082.00 .3021192 .0059065
+ 865192.56 .2979258 .0058702
+ 865303.12 .2973112 .0058516
+ 865413.62 .2875631 .0056910
+ 865524.19 .2961920 .0058499
+ 865634.75 .2983323 .0058849
+ 865745.44 .3067435 .0060537
+ 865856.00 .3007306 .0059302
+ 865966.69 .2975274 .0058648
+ 866077.44 .3064461 .0060406
+ 866188.06 .2864120 .0056277
+ 866298.81 .2988905 .0058145
+ 866409.50 .2994216 .0058858
+ 866520.31 .3056429 .0060015
+ 866631.00 .2947028 .0057666
+ 866741.88 .2888393 .0056766
+ 866852.75 .2946149 .0057478
+ 866963.56 .3006990 .0058852
+ 867074.44 .2915507 .0057152
+ 867185.25 .3065318 .0059932
+ 867296.25 .2964192 .0057520
+ 867407.19 .2972716 .0057222
+ 867518.12 .2941819 .0056752
+ 867629.12 .3005014 .0057368
+ 867740.06 .3002356 .0058532
+ 867851.12 .2974351 .0057414
+ 867962.12 .2977629 .0056874
+ 868073.19 .2993299 .0057621
+ 868184.31 .2990506 .0057907
+ 868295.38 .3116991 .0059303
+ 868406.56 .2953316 .0056565
+ 868517.62 .3110056 .0059128
+ 868628.88 .3032917 .0057991
+ 868740.00 .2890796 .0055821
+ 868851.25 .2985503 .0057517
+ 868962.50 .3033515 .0057232
+ 869073.69 .3014071 .0057912
+ 869185.00 .2946652 .0056770
+ 869296.25 .3039871 .0057883
+ 869407.62 .2957465 .0057161
+ 869518.88 .2987050 .0057693
+ 869630.31 .2966316 .0057489
+ 869741.75 .3031401 .0058245
+ 869853.06 .2898928 .0056413
+ 869964.56 .3063814 .0058896
+ 870075.94 .2979425 .0057614
+ 870187.44 .3030629 .0058505
+ 870299.00 .2989596 .0058096
+ 870410.44 .3057640 .0058693
+ 870522.00 .2969924 .0057173
+ 870633.50 .3069968 .0058443
+ 870745.12 .2979279 .0056980
+ 870856.62 .2994189 .0057536
+ 870968.31 .3020563 .0058100
+ 871080.00 .3113364 .0058883
+ 871191.62 .3111739 .0059746
+ 871303.31 .3103302 .0059678
+ 871414.94 .3046489 .0058620
+ 871526.75 .2845651 .0055125
+ 871638.44 .2953339 .0057188
+ 871750.25 .2921465 .0056281
+ 871862.06 .2900407 .0056156
+ 871973.81 .2804517 .0055533
+ 872085.69 .2667769 .0053117
+ 872197.50 .2535106 .0051811
+ 872309.44 .2559153 .0052338
+ 872421.25 .2577614 .0052628
+ 872533.19 .2698964 .0054370
+ 872645.19 .2691247 .0053687
+ 872757.06 .2960286 .0057147
+ 872869.12 .3054132 .0058270
+ 872981.06 .3121247 .0059546
+ 873093.12 .3211226 .0061487
+ 873205.12 .3188337 .0061358
+ 873317.25 .3061019 .0058812
+ 873429.38 .3151785 .0060252
+ 873541.44 .3189876 .0060607
+ 873653.62 .3140406 .0060204
+ 873765.69 .3214404 .0061749
+ 873877.94 .3110870 .0060001
+ 873990.19 .3086348 .0059210
+ 874102.31 .3133787 .0059728
+ 874214.62 .3062835 .0057711
+ 874326.81 .3149340 .0059801
+ 874439.12 .3073468 .0058653
+ 874551.38 .3043511 .0057902
+ 874663.75 .3140560 .0060287
+ 874776.19 .3162808 .0060186
+ 874888.50 .3258046 .0061910
+ 875000.94 .3209079 .0061490
+ 875113.25 .3142973 .0060140
+ 875225.75 .3267675 .0062213
+ 875338.12 .3224850 .0061475
+ 875450.69 .3296694 .0063003
+ 875563.25 .3239309 .0060916
+ 875675.69 .3277543 .0061954
+ 875788.25 .3069896 .0059212
+ 875900.75 .3229897 .0061345
+ 876013.44 .3151248 .0060076
+ 876125.94 .3219376 .0060168
+ 876238.62 .3312404 .0062194
+ 876351.31 .3254640 .0061543
+ 876463.94 .3334880 .0062301
+ 876576.69 .3394815 .0063535
+ 876689.38 .3312416 .0062426
+ 876802.12 .3247446 .0061425
+ 876914.88 .3234499 .0060754
+ 877027.69 .3278335 .0061254
+ 877140.50 .3324460 .0061601
+ 877253.31 .3277579 .0062019
+ 877366.19 .3186120 .0060327
+ 877479.00 .3295834 .0061606
+ 877591.94 .3303384 .0061635
+ 877704.88 .3131706 .0058759
+ 877817.75 .3201982 .0060009
+ 877930.81 .3253510 .0060769
+ 878043.69 .3198260 .0060346
+ 878156.75 .3206113 .0060340
+ 878269.69 .3302801 .0062325
+ 878382.81 .3398560 .0062918
+ 878495.94 .3258630 .0060611
+ 878608.94 .3312208 .0061173
+ 878722.12 .3307598 .0061435
+ 878835.19 .3264401 .0060711
+ 878948.38 .3346194 .0062662
+ 879061.50 .3272674 .0061453
+ 879174.75 .3161851 .0059567
+ 879288.00 .3153979 .0060366
+ 879401.19 .3238327 .0062084
+ 879514.50 .3234143 .0061670
+ 879627.75 .3053891 .0058545
+ 879741.06 .3181822 .0060210
+ 879854.38 .3165714 .0060110
+ 879967.75 .3051527 .0057745
+ 880081.19 .3182566 .0060122
+ 880194.50 .3139675 .0059782
+ 880307.94 .3245583 .0061236
+ 880421.31 .3303096 .0061828
+ 880534.88 .3317965 .0061750
+ 880648.38 .3303555 .0061577
+ 880761.81 .3401130 .0063290
+ 880875.38 .3343084 .0061547
+ 880988.88 .3330152 .0061345
+ 881102.50 .3323261 .0061542
+ 881216.06 .3343381 .0061773
+ 881329.69 .3405705 .0062232
+ 881443.38 .3335123 .0061242
+ 881557.00 .3355952 .0061987
+ 881670.69 .3361618 .0062422
+ 881784.38 .3376747 .0062549
+ 881898.12 .3370808 .0062858
+ 882011.81 .3373854 .0062828
+ 882125.62 .3385521 .0062899
+ 882239.44 .3422714 .0063427
+ 882353.19 .3313553 .0060873
+ 882467.12 .3454740 .0063603
+ 882580.88 .3435579 .0062400
+ 882694.81 .3418630 .0062710
+ 882808.69 .3394770 .0062166
+ 882922.62 .3293464 .0060496
+ 883036.62 .3435491 .0063103
+ 883150.50 .3366265 .0062307
+ 883264.56 .3385108 .0062794
+ 883378.50 .3324309 .0061672
+ 883492.56 .3384569 .0062619
+ 883606.56 .3466558 .0063719
+ 883720.69 .3422480 .0062529
+ 883834.88 .3521494 .0064161
+ 883948.94 .3439603 .0063469
+ 884063.12 .3494205 .0064004
+ 884177.19 .3431032 .0062819
+ 884291.44 .3425693 .0062857
+ 884405.69 .3491878 .0064176
+ 884519.88 .3436933 .0063067
+ 884634.19 .3404885 .0063180
+ 884748.38 .3401895 .0062459
+ 884862.75 .3437205 .0063369
+ 884977.00 .3480299 .0064250
+ 885091.38 .3575967 .0065710
+ 885205.81 .3494602 .0064750
+ 885320.12 .3459608 .0064141
+ 885434.56 .3468718 .0064466
+ 885548.94 .3381778 .0062483
+ 885663.44 .3546775 .0065066
+ 885777.88 .3446166 .0063633
+ 885892.44 .3493127 .0064448
+ 886007.00 .3511783 .0065184
+ 886121.50 .3473690 .0064408
+ 886236.06 .3428188 .0063274
+ 886350.62 .3357086 .0062180
+ 886465.25 .3650261 .0067225
+ 886579.81 .3565499 .0066441
+ 886694.56 .3485489 .0064220
+ 886809.25 .3609241 .0066251
+ 886923.88 .3589918 .0065836
+ 887038.69 .3517472 .0064456
+ 887153.38 .3471934 .0063085
+ 887268.19 .3457920 .0063019
+ 887382.88 .3438534 .0062956
+ 887497.75 .3496683 .0063704
+ 887612.62 .3579247 .0065131
+ 887727.44 .3537252 .0064516
+ 887842.38 .3501276 .0063685
+ 887957.19 .3491973 .0063695
+ 888072.19 .3468021 .0062505
+ 888187.12 .3598089 .0064688
+ 888302.06 .3682224 .0066540
+ 888417.06 .3496784 .0063398
+ 888532.06 .3495829 .0063712
+ 888647.12 .3576910 .0064566
+ 888762.12 .3496760 .0062966
+ 888877.25 .3724602 .0066981
+ 888992.38 .3608617 .0065116
+ 889107.44 .3511468 .0063089
+ 889222.62 .3615060 .0064993
+ 889337.75 .3529684 .0063484
+ 889453.00 .3658697 .0065622
+ 889568.12 .3471348 .0063230
+ 889683.44 .3634538 .0065535
+ 889798.75 .3556854 .0064981
+ 889913.94 .3539936 .0064782
+ 890029.31 .3580440 .0064871
+ 890144.56 .3709329 .0067071
+ 890259.94 .3665338 .0066437
+ 890375.25 .3546696 .0064348
+ 890490.69 .3603785 .0065395
+ 890606.19 .3515633 .0063369
+ 890721.50 .3479160 .0063195
+ 890837.06 .3408022 .0061776
+ 890952.44 .3656595 .0065936
+ 891068.00 .3668267 .0065671
+ 891183.50 .3535902 .0063457
+ 891299.06 .3682464 .0066058
+ 891414.69 .3681658 .0065983
+ 891530.25 .3647600 .0065346
+ 891645.88 .3651664 .0065093
+ 891761.44 .3639863 .0065323
+ 891877.19 .3626963 .0065125
+ 891992.88 .3679837 .0066002
+ 892108.56 .3731396 .0066603
+ 892224.31 .3635117 .0065028
+ 892340.00 .3572316 .0063947
+ 892455.81 .3659011 .0065071
+ 892571.56 .3613933 .0064224
+ 892687.44 .3775860 .0067409
+ 892803.31 .3681636 .0065488
+ 892919.12 .3516602 .0063558
+ 893035.06 .3714732 .0066749
+ 893150.94 .3674482 .0066361
+ 893266.88 .3602264 .0065395
+ 893382.81 .3701225 .0067465
+ 893498.81 .3731783 .0067388
+ 893614.88 .3687838 .0066916
+ 893730.81 .3657250 .0065977
+ 893846.94 .3616284 .0065078
+ 893962.94 .3633138 .0065102
+ 894079.06 .3585340 .0064160
+ 894195.12 .3812590 .0068379
+ 894311.31 .3771284 .0067645
+ 894427.50 .3641603 .0065667
+ 894543.62 .3612141 .0064584
+ 894659.88 .3737535 .0066734
+ 894776.00 .3698611 .0066496
+ 894892.31 .3570371 .0063937
+ 895008.62 .3728145 .0066328
+ 895124.88 .3732103 .0066560
+ 895241.25 .3728088 .0066891
+ 895357.50 .3649356 .0065435
+ 895473.94 .3815941 .0067756
+ 895590.25 .3782846 .0066888
+ 895706.69 .3672580 .0065570
+ 895823.19 .3633176 .0064244
+ 895939.56 .3785960 .0067145
+ 896056.12 .3902565 .0069039
+ 896172.56 .3843366 .0068087
+ 896289.12 .3836748 .0067947
+ 896405.56 .3903006 .0069679
+ 896522.19 .3813739 .0067440
+ 896638.81 .3784068 .0067324
+ 896755.38 .3834911 .0067076
+ 896872.06 .3819754 .0067257
+ 896988.69 .3882641 .0068585
+ 897105.38 .3675468 .0064974
+ 897222.06 .3743565 .0065810
+ 897338.81 .3783359 .0066584
+ 897455.62 .3908138 .0068336
+ 897572.31 .3822856 .0066706
+ 897689.19 .3738935 .0065504
+ 897805.94 .3868469 .0068024
+ 897922.81 .3912044 .0067905
+ 898039.62 .3838497 .0067830
+ 898156.56 .3742644 .0065588
+ 898273.50 .3800796 .0067052
+ 898390.38 .3868380 .0067890
+ 898507.38 .3954800 .0069656
+ 898624.25 .3962051 .0069508
+ 898741.31 .3953777 .0069018
+ 898858.38 .3859694 .0067670
+ 898975.38 .3944649 .0069435
+ 899092.50 .3900492 .0068573
+ 899209.50 .3804461 .0066396
+ 899326.69 .3776889 .0066287
+ 899443.75 .3852835 .0066543
+ 899560.94 .3855699 .0067104
+ 899678.19 .4072964 .0070375
+ 899795.31 .3979322 .0068626
+ 899912.62 .3934427 .0068794
+ 900029.81 .4029025 .0070871
+ 900147.12 .3980315 .0069562
+ 900264.38 .3873867 .0068618
+ 900381.75 .3926688 .0069532
+ 900499.12 .4031206 .0070410
+ 900616.44 .3873453 .0068416
+ 900733.88 .4028644 .0070830
+ 900851.19 .3994120 .0070146
+ 900968.69 .4172585 .0072501
+ 901086.12 .4054488 .0071378
+ 901203.62 .4122767 .0071716
+ 901321.19 .3974695 .0069660
+ 901438.62 .4078416 .0071944
+ 901556.25 .4168083 .0073222
+ 901673.75 .4111516 .0072064
+ 901791.38 .4077632 .0071607
+ 901908.94 .4023622 .0070518
+ 902026.62 .4083660 .0071599
+ 902144.38 .3998690 .0069446
+ 902262.00 .4156498 .0072284
+ 902379.75 .4071281 .0070539
+ 902497.44 .4105814 .0070364
+ 902615.25 .3984104 .0069223
+ 902733.06 .4104069 .0070936
+ 902850.81 .4061670 .0069737
+ 902968.69 .4081288 .0070654
+ 903086.44 .4137890 .0071491
+ 903204.38 .4236919 .0072674
+ 903322.19 .4192093 .0071856
+ 903440.19 .4134411 .0071251
+ 903558.19 .4049574 .0069571
+ 903676.06 .4106665 .0070984
+ 903794.12 .4158666 .0071329
+ 903912.06 .4015834 .0069961
+ 904030.12 .4123606 .0070854
+ 904148.12 .4160399 .0071513
+ 904266.25 .4258598 .0073532
+ 904384.44 .4151442 .0071742
+ 904502.50 .4349934 .0074063
+ 904620.69 .4220467 .0071599
+ 904738.81 .4347310 .0072641
+ 904857.06 .4266177 .0072159
+ 904975.19 .4293135 .0072796
+ 905093.50 .4236692 .0072215
+ 905211.81 .4057812 .0069797
+ 905330.00 .4124761 .0070471
+ 905448.38 .4417645 .0075116
+ 905566.62 .4146293 .0071610
+ 905685.06 .4205045 .0072679
+ 905803.50 .4187972 .0072154
+ 905921.81 .4221032 .0072038
+ 906040.31 .4256824 .0072778
+ 906158.69 .4004092 .0069715
+ 906277.25 .4161955 .0071855
+ 906395.69 .4001205 .0069375
+ 906514.25 .4104329 .0070966
+ 906632.81 .3970481 .0068601
+ 906751.31 .4024021 .0069493
+ 906870.00 .4083755 .0070581
+ 906988.50 .4018019 .0070026
+ 907107.19 .3816314 .0066062
+ 907225.81 .3840887 .0067658
+ 907344.56 .3752384 .0065743
+ 907463.31 .3585471 .0064516
+ 907581.94 .3635752 .0065463
+ 907700.75 .3474986 .0063721
+ 907819.50 .3067919 .0058164
+ 907938.31 .3120272 .0058663
+ 908057.06 .2919138 .0056257
+ 908176.00 .2685376 .0053078
+ 908294.94 .2587751 .0052040
+ 908413.75 .2563726 .0051782
+ 908532.69 .2279844 .0047386
+ 908651.56 .2078896 .0045017
+ 908770.62 .1925213 .0043107
+ 908889.50 .1654678 .0039316
+ 909008.56 .1534311 .0037816
+ 909127.69 .1305961 .0034438
+ 909246.69 .1175914 .0032662
+ 909365.81 .1094885 .0031675
+ 909484.81 .1041717 .0030965
+ 909604.00 .0885816 .0028082
+ 909723.19 .0805293 .0026565
+ 909842.31 .0743594 .0025345
+ 909961.56 .0633468 .0023108
+ 910080.75 .0647868 .0023352
+ 910200.00 .0625887 .0022683
+ 910319.25 .0608789 .0022315
+ 910438.56 .0597517 .0022181
+ 910557.94 .0582272 .0021740
+ 910677.19 .0627127 .0022976
+ 910796.62 .0638335 .0022966
+ 910915.94 .0626221 .0022549
+ 911035.44 .0647264 .0023023
+ 911154.75 .0680023 .0023535
+ 911274.31 .0698167 .0024182
+ 911393.81 .0745036 .0025013
+ 911513.25 .0799036 .0025977
+ 911632.81 .0772402 .0025505
+ 911752.31 .0850362 .0026912
+ 911871.94 .0918321 .0027908
+ 911991.50 .0913985 .0028003
+ 912111.12 .0953328 .0028526
+ 912230.81 .1041348 .0029845
+ 912350.44 .1047258 .0030217
+ 912470.19 .1122043 .0031403
+ 912589.81 .1126438 .0031290
+ 912709.62 .1172218 .0032011
+ 912829.31 .1209856 .0032584
+ 912949.19 .1258643 .0033233
+ 913069.00 .1323543 .0034231
+ 913188.81 .1387054 .0035436
+ 913308.69 .1299214 .0034185
+ 913428.50 .1412757 .0035560
+ 913548.44 .1360650 .0034392
+ 913668.44 .1475778 .0036371
+ 913788.31 .1570866 .0037635
+ 913908.38 .1474892 .0035805
+ 914028.31 .1537602 .0036674
+ 914148.38 .1600116 .0037726
+ 914268.38 .1615364 .0038350
+ 914388.44 .1662354 .0038644
+ 914508.62 .1577193 .0037104
+ 914628.69 .1671143 .0039294
+ 914748.88 .1716422 .0039571
+ 914868.94 .1754336 .0040224
+ 914989.19 .1766844 .0040341
+ 915109.31 .1833020 .0041617
+ 915229.62 .1774401 .0040316
+ 915349.94 .1806221 .0040738
+ 915470.12 .1847629 .0041502
+ 915590.50 .1868096 .0041786
+ 915710.75 .1945100 .0043154
+ 915831.19 .1870446 .0041477
+ 915951.50 .1886072 .0042212
+ 916071.94 .1956841 .0043098
+ 916192.44 .2046293 .0044821
+ 916312.81 .1968821 .0043340
+ 916433.31 .1988417 .0043785
+ 916553.75 .1967106 .0043079
+ 916674.31 .2011788 .0043954
+ 916794.94 .2019556 .0043420
+ 916915.44 .2093793 .0045086
+ 917036.06 .2114058 .0045249
+ 917156.62 .2062241 .0043880
+ 917277.31 .2085542 .0044620
+ 917397.94 .2125276 .0045091
+ 917518.62 .2063647 .0044113
+ 917639.44 .2089920 .0044673
+ 917760.06 .2108719 .0045097
+ 917880.88 .2089134 .0044873
+ 918001.62 .2123857 .0045625
+ 918122.44 .2205504 .0046933
+ 918243.25 .2134371 .0045490
+ 918364.12 .2184069 .0045920
+ 918485.06 .2176725 .0045841
+ 918605.88 .2227930 .0047359
+ 918726.88 .2180598 .0045978
+ 918847.75 .2190783 .0046170
+ 918968.75 .2279945 .0047707
+ 919089.69 .2263607 .0047476
+ 919210.81 .2284098 .0048072
+ 919331.88 .2234954 .0047229
+ 919452.88 .2224145 .0047091
+ 919574.00 .2285880 .0048330
+ 919695.06 .2253792 .0047821
+ 919816.25 .2213670 .0047851
+ 919937.38 .2292131 .0049642
+ 920058.62 .2310834 .0050557
+ 920179.88 .2279552 .0050210
+ 920301.06 .2306703 .0051314
+ 920422.38 .2262521 .0050465
+ 920543.56 .2328750 .0052152
+ 920664.94 .2377948 .0052562
+ 920786.31 .2331809 .0051841
+ 920907.62 .2344770 .0051573
+ 921029.06 .2293035 .0050522
+ 921150.38 .2307771 .0050463
+ 921271.88 .2249029 .0049130
+ 921393.25 .2392848 .0051460
+ 921514.75 .2336059 .0050282
+ 921636.31 .2416709 .0051551
+ 921757.81 .2302831 .0049590
+ 921879.38 .2303321 .0048829
+ 922000.88 .2400837 .0050741
+ 922122.56 .2306429 .0049563
+ 922244.12 .2353215 .0049925
+ 922365.81 .2386394 .0049975
+ 922487.50 .2380332 .0049908
+ 922609.12 .2453021 .0051408
+ 922730.94 .2445152 .0051172
+ 922852.56 .2356095 .0049947
+ 922974.38 .2346621 .0049878
+ 923096.12 .2406333 .0050627
+ 923218.00 .2444204 .0051276
+ 923339.88 .2411660 .0049544
+ 923461.69 .2418317 .0050174
+ 923583.62 .2382006 .0049971
+ 923705.44 .2415492 .0049686
+ 923827.44 .2407772 .0049818
+ 923949.31 .2463902 .0050669
+ 924071.38 .2370723 .0049226
+ 924193.44 .2394793 .0049518
+ 924315.38 .2425280 .0050036
+ 924437.50 .2347558 .0048978
+ 924559.50 .2309711 .0048236
+ 924681.69 .2476437 .0050996
+ 924803.88 .2388734 .0049465
+ 924925.94 .2412646 .0049656
+ 925048.19 .2415268 .0050355
+ 925170.31 .2449699 .0050372
+ 925292.56 .2471412 .0050651
+ 925414.75 .2345229 .0048629
+ 925537.06 .2370903 .0048821
+ 925659.44 .2356759 .0048547
+ 925781.69 .2342672 .0048428
+ 925904.06 .2410068 .0049662
+ 926026.38 .2448821 .0050195
+ 926148.81 .2400312 .0049000
+ 926271.19 .2401555 .0049469
+ 926393.69 .2384016 .0048924
+ 926516.19 .2308697 .0047562
+ 926638.62 .2393826 .0049059
+ 926761.19 .2504689 .0051254
+ 926883.69 .2289596 .0047557
+ 927006.31 .2382371 .0048660
+ 927128.81 .2434329 .0049913
+ 927251.50 .2363391 .0048836
+ 927374.19 .2398316 .0049208
+ 927496.75 .2323367 .0048039
+ 927619.50 .2387196 .0049175
+ 927742.12 .2382300 .0049478
+ 927864.94 .2488794 .0051053
+ 927987.62 .2318891 .0048221
+ 928110.44 .2335735 .0048074
+ 928233.31 .2363849 .0048750
+ 928356.06 .2439891 .0049540
+ 928479.00 .2435223 .0049576
+ 928601.81 .2437585 .0049968
+ 928724.75 .2428894 .0049327
+ 928847.75 .2343983 .0048261
+ 928970.62 .2409250 .0049717
+ 929093.69 .2369339 .0048865
+ 929216.62 .2491537 .0050937
+ 929339.69 .2440438 .0049894
+ 929462.69 .2480516 .0050850
+ 929585.81 .2351895 .0048847
+ 929708.94 .2395650 .0049516
+ 929832.00 .2305597 .0047525
+ 929955.19 .2339223 .0048156
+ 930078.31 .2394356 .0049262
+ 930201.56 .2455637 .0050557
+ 930324.75 .2423020 .0049648
+ 930448.00 .2407662 .0049427
+ 930571.38 .2426315 .0049970
+ 930694.56 .2405679 .0049183
+ 930817.94 .2444755 .0050702
+ 930941.25 .2421301 .0049571
+ 931064.62 .2266981 .0047102
+ 931188.00 .2365287 .0048932
+ 931311.44 .2344670 .0048226
+ 931434.94 .2382386 .0049061
+ 931558.38 .2341813 .0048195
+ 931681.88 .2315691 .0048393
+ 931805.38 .2313622 .0047801
+ 931928.94 .2377425 .0049003
+ 932052.56 .2372296 .0048949
+ 932176.06 .2271519 .0047086
+ 932299.75 .2304628 .0047531
+ 932423.31 .2411360 .0049789
+ 932547.06 .2382606 .0048846
+ 932670.69 .2321568 .0047562
+ 932794.44 .2362294 .0048241
+ 932918.25 .2419387 .0049695
+ 933041.94 .2338228 .0048360
+ 933165.75 .2381062 .0048912
+ 933289.50 .2346411 .0048486
+ 933413.44 .2452210 .0050348
+ 933537.19 .2371585 .0048977
+ 933661.12 .2351884 .0048242
+ 933785.12 .2345749 .0048522
+ 933909.00 .2342297 .0048004
+ 934033.00 .2348747 .0048162
+ 934156.94 .2262870 .0046983
+ 934281.00 .2336897 .0048432
+ 934404.94 .2306615 .0048004
+ 934529.06 .2372348 .0049039
+ 934653.19 .2359115 .0048801
+ 934777.25 .2349688 .0048779
+ 934901.44 .2360097 .0048914
+ 935025.50 .2405332 .0049835
+ 935149.75 .2284635 .0048061
+ 935273.88 .2318764 .0048143
+ 935398.19 .2336578 .0048159
+ 935522.50 .2192209 .0045937
+ 935646.69 .2286835 .0047713
+ 935771.06 .2282515 .0047941
+ 935895.31 .2262170 .0047599
+ 936019.75 .2319453 .0048242
+ 936144.19 .2300126 .0048271
+ 936268.50 .2239487 .0046598
+ 936393.00 .2257076 .0046985
+ 936517.38 .2220691 .0046096
+ 936641.94 .2232506 .0046867
+ 936766.38 .2297857 .0047466
+ 936890.94 .2235784 .0046358
+ 937015.56 .2278434 .0047053
+ 937140.06 .2190530 .0045736
+ 937264.75 .2244432 .0046504
+ 937389.31 .2192782 .0045631
+ 937514.00 .2254046 .0046016
+ 937638.62 .2388023 .0048936
+ 937763.38 .2185729 .0045301
+ 937888.12 .2236228 .0046119
+ 938012.81 .2248681 .0046368
+ 938137.69 .2281016 .0047128
+ 938262.38 .2184999 .0045340
+ 938387.31 .2164554 .0044713
+ 938512.06 .2213753 .0045599
+ 938637.00 .2235473 .0046372
+ 938761.94 .2218249 .0046211
+ 938886.81 .2148725 .0044748
+ 939011.81 .2178944 .0045629
+ 939136.75 .2214014 .0046627
+ 939261.81 .2108737 .0045044
+ 939386.75 .2183315 .0046419
+ 939511.88 .2176769 .0046208
+ 939637.00 .2217621 .0046834
+ 939762.06 .2132101 .0045306
+ 939887.25 .2163721 .0045924
+ 940012.31 .2115533 .0045020
+ 940137.56 .2111129 .0045376
+ 940262.81 .2146790 .0045569
+ 940387.94 .2190510 .0046088
+ 940513.25 .2062820 .0044003
+ 940638.50 .2133457 .0045138
+ 940763.81 .2191228 .0046397
+ 940889.12 .2085379 .0044660
+ 941014.50 .2077550 .0044515
+ 941139.94 .2185674 .0046293
+ 941265.25 .2152943 .0045597
+ 941390.75 .2134165 .0045559
+ 941516.12 .2151255 .0045535
+ 941641.69 .2206675 .0046429
+ 941767.12 .2135719 .0045765
+ 941892.69 .2120437 .0044922
+ 942018.31 .2169928 .0045818
+ 942143.81 .2080642 .0044507
+ 942269.50 .2084892 .0044776
+ 942395.06 .2054626 .0044209
+ 942520.75 .2146552 .0045676
+ 942646.38 .2071558 .0044544
+ 942772.12 .2041451 .0043881
+ 942897.88 .2105732 .0045153
+ 943023.56 .2032535 .0043914
+ 943149.44 .2038760 .0044242
+ 943275.19 .2106411 .0045330
+ 943401.06 .2072475 .0044696
+ 943526.94 .2055437 .0044190
+ 943652.75 .2138529 .0045498
+ 943778.75 .2094519 .0045714
+ 943904.62 .2086977 .0045135
+ 944030.62 .2012339 .0043927
+ 944156.50 .2095734 .0045271
+ 944282.56 .2019186 .0044244
+ 944408.69 .2012216 .0044398
+ 944534.69 .2084326 .0045257
+ 944660.81 .2030358 .0044237
+ 944786.81 .1958703 .0043025
+ 944913.00 .1986490 .0043124
+ 945039.12 .1994929 .0043724
+ 945165.38 .1971636 .0042928
+ 945291.62 .1990667 .0043272
+ 945417.81 .1995287 .0043150
+ 945544.12 .1921400 .0042243
+ 945670.31 .1944073 .0042322
+ 945796.69 .1963607 .0042991
+ 945922.94 .2065481 .0044366
+ 946049.38 .1920670 .0042149
+ 946175.81 .1891242 .0042165
+ 946302.19 .1868386 .0041571
+ 946428.62 .1923199 .0043094
+ 946555.06 .1913738 .0042978
+ 946681.56 .1943776 .0043571
+ 946808.06 .1884586 .0043121
+ 946934.62 .1831497 .0041822
+ 947061.25 .1900795 .0043511
+ 947187.75 .1889041 .0043184
+ 947314.44 .1957980 .0044930
+ 947441.00 .1923317 .0044505
+ 947567.75 .1931082 .0044475
+ 947694.50 .1919863 .0044999
+ 947821.12 .1894778 .0044322
+ 947947.94 .1900737 .0044840
+ 948074.62 .1925860 .0044348
+ 948201.50 .1904266 .0043905
+ 948328.25 .1994801 .0045063
+ 948455.12 .1881444 .0043438
+ 948582.06 .1835775 .0042032
+ 948708.88 .1891193 .0043044
+ 948835.88 .1895382 .0043117
+ 948962.75 .1861866 .0041818
+ 949089.75 .1886286 .0042555
+ 949216.69 .1833919 .0041702
+ 949343.75 .1817782 .0041588
+ 949470.88 .1833743 .0041821
+ 949597.88 .1781259 .0041355
+ 949725.00 .1799158 .0041580
+ 949852.06 .1819780 .0041598
+ 949979.31 .1873031 .0042825
+ 950106.38 .1845649 .0042192
+ 950233.62 .1795527 .0041160
+ 950360.94 .1815363 .0041191
+ 950488.12 .1747485 .0039711
+ 950615.44 .1852820 .0041710
+ 950742.69 .1692130 .0039287
+ 950870.06 .1790204 .0040610
+ 950997.38 .1862122 .0042074
+ 951124.81 .1813987 .0041027
+ 951252.25 .1750678 .0040080
+ 951379.62 .1781062 .0040765
+ 951507.12 .1772794 .0039795
+ 951634.56 .1824028 .0041273
+ 951762.12 .1815812 .0040632
+ 951889.69 .1770559 .0039863
+ 952017.19 .1756413 .0039655
+ 952144.81 .1793251 .0040512
+ 952272.38 .1719962 .0038985
+ 952400.06 .1846088 .0041194
+ 952527.62 .1767810 .0040322
+ 952655.38 .1776105 .0040460
+ 952783.19 .1688210 .0038966
+ 952910.81 .1719943 .0039963
+ 953038.62 .1741820 .0039950
+ 953166.38 .1696735 .0039815
+ 953294.25 .1762809 .0040413
+ 953422.00 .1701352 .0038943
+ 953549.94 .1683680 .0039012
+ 953677.88 .1778391 .0040232
+ 953805.75 .1734754 .0039389
+ 953933.75 .1701612 .0039133
+ 954061.62 .1718749 .0039211
+ 954189.69 .1773474 .0040084
+ 954317.62 .1717276 .0038987
+ 954445.75 .1676168 .0038924
+ 954573.88 .1760999 .0040730
+ 954701.94 .1608110 .0037873
+ 954830.06 .1676686 .0039351
+ 954958.19 .1759836 .0041004
+ 955086.44 .1626402 .0037924
+ 955214.69 .1642919 .0038681
+ 955342.81 .1664034 .0038906
+ 955471.12 .1642395 .0038734
+ 955599.38 .1641926 .0038951
+ 955727.69 .1614199 .0038719
+ 955856.00 .1630492 .0039038
+ 955984.38 .1643881 .0038278
+ 956112.81 .1618618 .0038155
+ 956241.19 .1609526 .0038059
+ 956369.69 .1565916 .0037084
+ 956498.06 .1544761 .0036661
+ 956626.56 .1602141 .0038041
+ 956755.06 .1573862 .0037152
+ 956883.62 .1553495 .0037256
+ 957012.25 .1545736 .0037127
+ 957140.75 .1662542 .0039058
+ 957269.44 .1600149 .0037789
+ 957398.00 .1638265 .0038576
+ 957526.75 .1625419 .0038274
+ 957655.38 .1615289 .0038361
+ 957784.12 .1634282 .0038192
+ 957912.94 .1633281 .0038346
+ 958041.69 .1574408 .0037598
+ 958170.50 .1661781 .0039055
+ 958299.25 .1586001 .0038075
+ 958428.19 .1663054 .0039428
+ 958557.00 .1603084 .0038329
+ 958685.94 .1574229 .0037601
+ 958814.94 .1603891 .0037787
+ 958943.81 .1604675 .0038065
+ 959072.88 .1545610 .0037303
+ 959201.81 .1596297 .0038184
+ 959330.88 .1564229 .0037506
+ 959460.00 .1631716 .0038488
+ 959589.00 .1570937 .0037472
+ 959718.19 .1597866 .0037820
+ 959847.25 .1651421 .0038554
+ 959976.44 .1571016 .0037307
+ 960105.56 .1602672 .0037649
+ 960234.88 .1638342 .0038127
+ 960364.12 .1678473 .0038605
+ 960493.38 .1614194 .0037450
+ 960622.69 .1589226 .0037332
+ 960751.94 .1613627 .0038033
+ 960881.38 .1602006 .0037730
+ 961010.62 .1590604 .0037680
+ 961140.12 .1630272 .0038669
+ 961269.56 .1595300 .0038004
+ 961398.94 .1614120 .0038296
+ 961528.50 .1565296 .0037433
+ 961657.94 .1554907 .0037319
+ 961787.50 .1548615 .0037374
+ 961917.00 .1626790 .0038544
+ 962046.62 .1554904 .0037404
+ 962176.31 .1583164 .0037743
+ 962305.88 .1539566 .0037339
+ 962435.56 .1509123 .0036501
+ 962565.19 .1452397 .0035970
+ 962695.00 .1595140 .0038465
+ 962824.62 .1593130 .0038447
+ 962954.44 .1599565 .0038743
+ 963084.31 .1558891 .0037901
+ 963214.06 .1578389 .0037950
+ 963343.94 .1581134 .0038214
+ 963473.75 .1547541 .0037345
+ 963603.69 .1634970 .0038930
+ 963733.69 .1560519 .0037604
+ 963863.56 .1498093 .0036514
+ 963993.62 .1622234 .0038663
+ 964123.56 .1531647 .0037188
+ 964253.62 .1603575 .0038145
+ 964383.62 .1537561 .0037242
+ 964513.75 .1506201 .0036758
+ 964643.88 .1605478 .0038723
+ 964773.94 .1500220 .0036374
+ 964904.19 .1563684 .0037576
+ 965034.31 .1618573 .0038817
+ 965164.56 .1587592 .0038056
+ 965294.75 .1527311 .0037063
+ 965425.06 .1552489 .0037237
+ 965555.38 .1509284 .0036196
+ 965685.62 .1544930 .0037130
+ 965816.06 .1556025 .0037527
+ 965946.38 .1543656 .0037139
+ 966076.81 .1532685 .0036524
+ 966207.19 .1532232 .0036744
+ 966337.69 .1557852 .0036766
+ 966468.19 .1501890 .0035732
+ 966598.62 .1620673 .0038408
+ 966729.19 .1533998 .0036824
+ 966859.69 .1548893 .0037066
+ 966990.31 .1479345 .0036392
+ 967120.88 .1618639 .0038748
+ 967251.56 .1519350 .0037050
+ 967382.31 .1501233 .0036598
+ 967512.94 .1536943 .0037532
+ 967643.69 .1582242 .0038130
+ 967774.38 .1528696 .0036920
+ 967905.19 .1562719 .0037697
+ 968036.00 .1570592 .0037716
+ 968166.75 .1548298 .0037177
+ 968297.69 .1506225 .0036297
+ 968428.50 .1579056 .0037492
+ 968559.44 .1599569 .0037682
+ 968690.31 .1536929 .0036610
+ 968821.31 .1621214 .0038180
+ 968952.31 .1512546 .0036281
+ 969083.25 .1567776 .0037396
+ 969214.38 .1538237 .0037191
+ 969345.38 .1504564 .0036253
+ 969476.50 .1578023 .0037974
+ 969607.56 .1573406 .0037680
+ 969738.75 .1620106 .0038284
+ 969869.94 .1540018 .0037127
+ 970001.06 .1511979 .0036782
+ 970132.38 .1473948 .0036021
+ 970263.56 .1513966 .0036672
+ 970394.88 .1580709 .0038237
+ 970526.12 .1583929 .0038350
+ 970657.50 .1506047 .0037088
+ 970788.88 .1613011 .0038756
+ 970920.19 .1617222 .0039044
+ 971051.69 .1529236 .0037403
+ 971183.00 .1527729 .0037301
+ 971314.56 .1505143 .0036772
+ 971446.06 .1534438 .0037606
+ 971577.50 .1538385 .0037641
+ 971709.12 .1431390 .0035707
+ 971840.62 .1575605 .0038322
+ 971972.25 .1613730 .0038310
+ 972103.81 .1562251 .0037675
+ 972235.50 .1658640 .0039225
+ 972367.25 .1539594 .0036647
+ 972498.88 .1528641 .0036515
+ 972630.69 .1550161 .0037149
+ 972762.31 .1587674 .0037315
+ 972894.19 .1616863 .0037918
+ 973025.94 .1635455 .0038872
+ 973157.81 .1596632 .0038329
+ 973289.75 .1597986 .0038356
+ 973421.56 .1551736 .0037327
+ 973553.50 .1532630 .0037032
+ 973685.38 .1536853 .0037493
+ 973817.44 .1541899 .0037780
+ 973949.31 .1544624 .0037596
+ 974081.44 .1513343 .0036766
+ 974213.50 .1566176 .0037875
+ 974345.50 .1597956 .0038399
+ 974477.69 .1530119 .0036796
+ 974609.75 .1590687 .0038034
+ 974741.94 .1635539 .0038653
+ 974874.06 .1563135 .0037399
+ 975006.31 .1645701 .0038962
+ 975138.62 .1614426 .0038413
+ 975270.81 .1611978 .0038087
+ 975403.19 .1685711 .0039576
+ 975535.44 .1587728 .0038058
+ 975667.81 .1586559 .0037899
+ 975800.25 .1603477 .0037766
+ 975932.56 .1607160 .0037953
+ 976065.06 .1651303 .0038290
+ 976197.44 .1566063 .0037069
+ 976330.00 .1637233 .0038689
+ 976462.44 .1634083 .0038456
+ 976595.00 .1660134 .0038581
+ 976727.62 .1596033 .0037988
+ 976860.12 .1591715 .0037740
+ 976992.81 .1672387 .0039568
+ 977125.38 .1608569 .0037940
+ 977258.12 .1575356 .0037722
+ 977390.75 .1608049 .0038398
+ 977523.50 .1597499 .0038077
+ 977656.31 .1656347 .0038953
+ 977789.00 .1607064 .0038042
+ 977921.88 .1661985 .0038958
+ 978054.62 .1738178 .0040799
+ 978187.56 .1716346 .0040102
+ 978320.38 .1594469 .0037829
+ 978453.31 .1691570 .0039976
+ 978586.31 .1632612 .0039065
+ 978719.25 .1608457 .0038297
+ 978852.25 .1621655 .0038585
+ 978985.25 .1585107 .0037860
+ 979118.31 .1661832 .0039299
+ 979251.31 .1579257 .0037647
+ 979384.50 .1558045 .0037408
+ 979517.69 .1606085 .0038108
+ 979650.75 .1568645 .0037536
+ 979784.00 .1544328 .0037587
+ 979917.12 .1535194 .0036955
+ 980050.44 .1612037 .0038014
+ 980183.75 .1546754 .0037287
+ 980317.00 .1566650 .0037679
+ 980450.38 .1540496 .0037172
+ 980583.62 .1611271 .0038101
+ 980717.06 .1584875 .0037948
+ 980850.38 .1640870 .0039040
+ 980983.88 .1612058 .0038375
+ 981117.38 .1615337 .0037861
+ 981250.81 .1666631 .0039238
+ 981384.38 .1632925 .0038635
+ 981517.88 .1618491 .0038596
+ 981651.44 .1666363 .0039332
+ 981785.00 .1729947 .0040463
+ 981918.69 .1677152 .0039564
+ 982052.38 .1637323 .0039401
+ 982186.00 .1651373 .0039144
+ 982319.75 .1713767 .0040682
+ 982453.38 .1686635 .0039590
+ 982587.19 .1639292 .0038818
+ 982720.94 .1636739 .0038600
+ 982854.75 .1662851 .0039071
+ 982988.69 .1704911 .0039888
+ 983122.50 .1747421 .0039880
+ 983256.44 .1708098 .0039853
+ 983390.25 .1692364 .0039404
+ 983524.25 .1702689 .0039822
+ 983658.31 .1687663 .0039541
+ 983792.25 .1707449 .0039895
+ 983926.31 .1721965 .0040634
+ 984060.31 .1714861 .0040430
+ 984194.44 .1708740 .0040287
+ 984328.50 .1660984 .0039328
+ 984462.69 .1719822 .0040208
+ 984596.94 .1653543 .0038812
+ 984731.06 .1729185 .0040031
+ 984865.31 .1729783 .0039850
+ 984999.50 .1723371 .0040039
+ 985133.81 .1733325 .0040263
+ 985268.06 .1671593 .0039181
+ 985402.44 .1744896 .0040495
+ 985536.88 .1759707 .0040869
+ 985671.19 .1711985 .0040038
+ 985805.62 .1791112 .0041300
+ 985940.00 .1779214 .0041383
+ 986074.56 .1688024 .0039466
+ 986208.94 .1718819 .0040250
+ 986343.56 .1796550 .0041721
+ 986478.19 .1742341 .0041028
+ 986612.69 .1748068 .0040814
+ 986747.31 .1793730 .0042031
+ 986881.88 .1810593 .0042418
+ 987016.62 .1738224 .0040356
+ 987151.25 .1738042 .0040985
+ 987286.00 .1840011 .0042160
+ 987420.81 .1733558 .0040437
+ 987555.50 .1802848 .0041867
+ 987690.38 .1827226 .0042214
+ 987825.12 .1809406 .0042019
+ 987960.00 .1750862 .0041016
+ 988095.00 .1889742 .0043559
+ 988229.81 .1823729 .0042149
+ 988364.81 .1831273 .0042344
+ 988499.69 .1805345 .0041871
+ 988634.75 .1798454 .0041590
+ 988769.69 .1803267 .0041826
+ 988904.81 .1812059 .0042131
+ 989039.94 .1859406 .0042556
+ 989175.00 .1861225 .0042919
+ 989310.19 .1763669 .0041246
+ 989445.25 .1808395 .0041855
+ 989580.50 .1759171 .0041051
+ 989715.62 .1843386 .0042297
+ 989850.94 .1865298 .0042903
+ 989986.25 .1856534 .0042806
+ 990121.50 .1903015 .0043214
+ 990256.88 .1834216 .0041895
+ 990392.12 .1810970 .0041163
+ 990527.62 .1897574 .0043134
+ 990662.94 .1916770 .0043463
+ 990798.44 .1844955 .0042194
+ 990933.94 .1856902 .0042191
+ 991069.38 .1919903 .0043120
+ 991204.94 .1901861 .0042985
+ 991340.44 .1932036 .0043302
+ 991476.06 .1890451 .0042836
+ 991611.56 .1928823 .0042851
+ 991747.25 .1834944 .0041455
+ 991883.00 .1853479 .0041713
+ 992018.62 .1940514 .0043111
+ 992154.38 .1946748 .0043203
+ 992290.06 .1922703 .0043247
+ 992425.88 .1983293 .0043635
+ 992561.75 .1923553 .0043384
+ 992697.50 .1895449 .0043325
+ 992833.38 .1826485 .0041855
+ 992969.19 .2010807 .0044665
+ 993105.19 .1932745 .0043802
+ 993241.06 .1896583 .0042436
+ 993377.06 .1925173 .0043864
+ 993513.12 .1937183 .0043605
+ 993649.06 .1940932 .0043892
+ 993785.19 .1913367 .0043741
+ 993921.19 .1961489 .0043895
+ 994057.38 .1952890 .0043935
+ 994193.44 .1891532 .0042095
+ 994329.62 .1956231 .0043911
+ 994465.88 .1997719 .0044313
+ 994602.00 .2064476 .0045238
+ 994738.31 .1966280 .0043379
+ 994874.56 .1967908 .0043602
+ 995010.88 .1975855 .0043688
+ 995147.12 .2021882 .0044648
+ 995283.56 .2023093 .0044574
+ 995420.00 .2020245 .0044415
+ 995556.38 .1966875 .0043433
+ 995692.88 .2064387 .0045140
+ 995829.25 .2003970 .0044510
+ 995965.81 .2022557 .0044730
+ 996102.38 .1971743 .0043514
+ 996238.88 .1976725 .0043662
+ 996375.50 .2091066 .0045591
+ 996512.06 .1970856 .0043421
+ 996648.75 .2056275 .0044766
+ 996785.38 .2040108 .0044377
+ 996922.12 .2027076 .0043820
+ 997058.88 .2112006 .0045041
+ 997195.56 .2035124 .0044434
+ 997332.38 .2072031 .0044771
+ 997469.12 .2122691 .0045504
+ 997606.00 .2005363 .0043359
+ 997742.81 .2003234 .0043635
+ 997879.75 .2019719 .0044235
+ 998016.75 .2042428 .0044042
+ 998153.62 .2099342 .0045643
+ 998290.62 .2016549 .0044141
+ 998427.56 .1987446 .0043912
+ 998564.69 .2122729 .0045924
+ 998701.69 .2095131 .0045413
+ 998838.81 .2034551 .0044522
+ 998976.00 .2079770 .0045328
+ 999113.06 .2091719 .0045353
+ 999250.31 .2031060 .0044109
+ 999387.44 .2048430 .0043798
+ 999524.69 .2123280 .0045396
+ 999661.88 .2121731 .0045419
+ 999799.25 .2111341 .0044994
+ 999936.62 .2211281 .0046743
+ 1000073.88 .2164572 .0046428
+ 1000211.31 .2094256 .0045081
+ 1000348.62 .2150452 .0045908
+ 1000486.12 .2183384 .0046973
+ 1000623.69 .2141130 .0046272
+ 1000761.12 .2078175 .0045352
+ 1000898.62 .2167712 .0046884
+ 1001036.12 .2102511 .0045753
+ 1001173.81 .2153828 .0046727
+ 1001311.31 .2120266 .0046646
+ 1001448.88 .2109365 .0046147
+ 1001586.69 .2107256 .0045782
+ 1001724.31 .2238748 .0047558
+ 1001862.12 .2254567 .0048311
+ 1001999.81 .2197702 .0046798
+ 1002137.62 .2112286 .0045451
+ 1002275.31 .2246873 .0047218
+ 1002413.19 .2143569 .0046245
+ 1002551.12 .2156767 .0046457
+ 1002688.88 .2202985 .0047717
+ 1002826.88 .2203270 .0047822
+ 1002964.81 .2175187 .0047252
+ 1003102.81 .2145314 .0046775
+ 1003240.69 .2219959 .0047907
+ 1003378.81 .2151798 .0046312
+ 1003516.88 .2285930 .0048455
+ 1003654.88 .2188126 .0046467
+ 1003793.12 .2236019 .0047804
+ 1003931.12 .2239921 .0048186
+ 1004069.31 .2241015 .0048101
+ 1004207.38 .2249531 .0048180
+ 1004345.81 .2249180 .0048021
+ 1004484.12 .2216394 .0047041
+ 1004622.31 .2273748 .0048045
+ 1004760.62 .2250255 .0047634
+ 1004898.88 .2269920 .0047693
+ 1005037.31 .2421126 .0050479
+ 1005175.81 .2221929 .0046991
+ 1005314.12 .2265694 .0047555
+ 1005452.69 .2185045 .0046863
+ 1005591.12 .2243512 .0047633
+ 1005729.62 .2334529 .0048842
+ 1005868.12 .2285406 .0048049
+ 1006006.81 .2264513 .0047640
+ 1006145.38 .2223792 .0046548
+ 1006283.88 .2299787 .0048021
+ 1006422.62 .2261515 .0047613
+ 1006561.31 .2266563 .0047560
+ 1006700.12 .2292239 .0048189
+ 1006838.69 .2334953 .0048700
+ 1006977.62 .2290611 .0047339
+ 1007116.38 .2321459 .0048598
+ 1007255.12 .2308013 .0048429
+ 1007394.12 .2194166 .0046317
+ 1007532.88 .2294075 .0047714
+ 1007671.81 .2298835 .0047679
+ 1007810.69 .2353062 .0049055
+ 1007949.81 .2269380 .0047013
+ 1008088.81 .2415597 .0050185
+ 1008227.81 .2391083 .0049747
+ 1008366.88 .2385997 .0049779
+ 1008505.88 .2281916 .0048350
+ 1008645.12 .2378587 .0050467
+ 1008784.12 .2338023 .0049461
+ 1008923.38 .2336683 .0049675
+ 1009062.62 .2377533 .0049615
+ 1009201.81 .2322882 .0048816
+ 1009341.12 .2316765 .0048754
+ 1009480.31 .2327384 .0049181
+ 1009619.69 .2400014 .0050489
+ 1009759.12 .2373269 .0049893
+ 1009898.38 .2434682 .0050724
+ 1010037.81 .2334445 .0049070
+ 1010177.19 .2361450 .0049339
+ 1010316.81 .2359361 .0049220
+ 1010456.12 .2343813 .0049017
+ 1010595.69 .2403657 .0049924
+ 1010735.31 .2236986 .0047026
+ 1010874.81 .2379201 .0049336
+ 1011014.50 .2416749 .0049923
+ 1011154.12 .2471836 .0050878
+ 1011293.81 .2396716 .0049728
+ 1011433.38 .2324546 .0048058
+ 1011573.19 .2495922 .0051167
+ 1011713.00 .2317556 .0048391
+ 1011852.69 .2375771 .0049142
+ 1011992.62 .2406082 .0049374
+ 1012132.31 .2495321 .0051130
+ 1012272.31 .2394460 .0049996
+ 1012412.12 .2454645 .0050397
+ 1012552.12 .2487946 .0050889
+ 1012692.12 .2511669 .0051545
+ 1012831.88 .2456906 .0050518
+ 1012972.12 .2534500 .0051878
+ 1013112.00 .2450183 .0049800
+ 1013252.12 .2574179 .0052096
+ 1013392.31 .2459127 .0049599
+ 1013532.31 .2464968 .0049656
+ 1013672.62 .2462775 .0049641
+ 1013812.69 .2478400 .0050124
+ 1013952.88 .2457777 .0049398
+ 1014093.12 .2503053 .0050552
+ 1014233.38 .2463560 .0049687
+ 1014373.81 .2384189 .0048522
+ 1014514.12 .2416791 .0049567
+ 1014654.50 .2532014 .0051065
+ 1014794.81 .2495590 .0050713
+ 1014935.31 .2508797 .0051319
+ 1015075.62 .2441173 .0049612
+ 1015216.19 .2536801 .0051010
+ 1015356.81 .2559191 .0051644
+ 1015497.19 .2511682 .0050694
+ 1015637.81 .2438870 .0049293
+ 1015778.38 .2489317 .0050647
+ 1015919.12 .2448842 .0049877
+ 1016059.62 .2499866 .0050673
+ 1016200.38 .2490419 .0050410
+ 1016341.12 .2573031 .0051790
+ 1016481.81 .2501880 .0050553
+ 1016622.62 .2474743 .0050690
+ 1016763.31 .2553094 .0052013
+ 1016904.31 .2508821 .0050948
+ 1017045.00 .2462901 .0050390
+ 1017185.88 .2283999 .0047467
+ 1017326.88 .2248330 .0047109
+ 1017467.81 .2026540 .0043981
+ 1017608.81 .2014192 .0044089
+ 1017749.81 .1883088 .0042127
+ 1017890.88 .1933338 .0043033
+ 1018032.00 .2073347 .0044925
+ 1018173.00 .2206447 .0046625
+ 1018314.19 .2382478 .0049367
+ 1018455.31 .2478513 .0050336
+ 1018596.50 .2542506 .0051483
+ 1018737.62 .2581908 .0051520
+ 1018878.88 .2688893 .0054059
+ 1019020.31 .2549329 .0051205
+ 1019161.50 .2654331 .0053524
+ 1019302.88 .2647072 .0053177
+ 1019444.12 .2589473 .0052557
+ 1019585.62 .2551490 .0051796
+ 1019726.88 .2578510 .0052219
+ 1019868.38 .2570069 .0051700
+ 1020009.88 .2543019 .0051422
+ 1020151.38 .2693048 .0053646
+ 1020293.00 .2690384 .0052823
+ 1020434.38 .2728139 .0053903
+ 1020576.12 .2618049 .0051534
+ 1020717.69 .2782528 .0054823
+ 1020859.38 .2567602 .0051319
+ 1021001.12 .2701075 .0053773
+ 1021142.81 .2626970 .0051869
+ 1021284.62 .2722214 .0053589
+ 1021426.31 .2712629 .0053627
+ 1021568.12 .2555057 .0050570
+ 1021709.88 .2748435 .0053728
+ 1021851.81 .2625825 .0052081
+ 1021993.69 .2721130 .0053062
+ 1022135.62 .2659685 .0052107
+ 1022277.62 .2666397 .0052975
+ 1022419.38 .2729664 .0053575
+ 1022561.50 .2664370 .0052483
+ 1022703.62 .2665830 .0052671
+ 1022845.62 .2548305 .0050686
+ 1022987.81 .2741283 .0053539
+ 1023129.81 .2656504 .0051789
+ 1023272.00 .2755269 .0053352
+ 1023414.12 .2686205 .0052235
+ 1023556.38 .2657852 .0051353
+ 1023698.69 .2664946 .0051777
+ 1023840.88 .2715428 .0052641
+ 1023983.31 .2727192 .0053192
+ 1024125.50 .2722842 .0052828
+ 1024267.88 .2722794 .0053238
+ 1024410.31 .2693901 .0052172
+ 1024552.81 .2715709 .0052654
+ 1024695.31 .2662858 .0051912
+ 1024837.62 .2745621 .0053095
+ 1024980.31 .2772943 .0053818
+ 1025122.69 .2630135 .0052137
+ 1025265.31 .2728677 .0053958
+ 1025407.81 .2749811 .0054312
+ 1025550.50 .2751917 .0054368
+ 1025693.31 .2741666 .0053983
+ 1025835.88 .2687944 .0053169
+ 1025978.62 .2773519 .0054943
+ 1026121.31 .2708592 .0053258
+ 1026264.12 .2651055 .0052630
+ 1026407.00 .2661735 .0052933
+ 1026549.81 .2668374 .0052771
+ 1026692.69 .2644162 .0052551
+ 1026835.50 .2703625 .0052853
+ 1026978.50 .2683131 .0052541
+ 1027121.38 .2727939 .0053670
+ 1027264.38 .2791191 .0054326
+ 1027407.50 .2716187 .0053304
+ 1027550.50 .2759186 .0054063
+ 1027693.62 .2664772 .0052318
+ 1027836.62 .2833251 .0054879
+ 1027979.88 .2803541 .0053725
+ 1028122.88 .2871289 .0055216
+ 1028266.19 .2758487 .0053664
+ 1028409.50 .2790927 .0053846
+ 1028552.69 .2791451 .0054104
+ 1028696.00 .2742988 .0053446
+ 1028839.31 .2757396 .0053509
+ 1028982.62 .2871179 .0055132
+ 1029125.88 .2869088 .0054923
+ 1029269.38 .2736279 .0052752
+ 1029412.88 .2729345 .0052255
+ 1029556.31 .2832319 .0054138
+ 1029699.88 .2762837 .0053591
+ 1029843.31 .2780151 .0053478
+ 1029986.88 .2830735 .0053905
+ 1030130.38 .2833784 .0054378
+ 1030274.12 .2798916 .0053897
+ 1030417.81 .2872749 .0054789
+ 1030561.38 .2836243 .0054027
+ 1030705.19 .2917121 .0055546
+ 1030848.88 .2750715 .0052526
+ 1030992.69 .2834052 .0053827
+ 1031136.50 .2837131 .0054433
+ 1031280.31 .2744267 .0052075
+ 1031424.19 .2832448 .0053870
+ 1031568.00 .2723890 .0052232
+ 1031712.00 .2879555 .0054452
+ 1031855.88 .2812153 .0053344
+ 1031999.88 .2838532 .0053939
+ 1032143.88 .2859299 .0054921
+ 1032287.88 .2818710 .0053521
+ 1032432.12 .2951601 .0055776
+ 1032576.12 .2824468 .0053274
+ 1032720.31 .2898198 .0054895
+ 1032864.31 .2891362 .0054903
+ 1033008.62 .2854023 .0053987
+ 1033152.88 .2848674 .0054071
+ 1033297.12 .2854750 .0054457
+ 1033441.38 .2925495 .0054961
+ 1033585.62 .2824002 .0053086
+ 1033730.00 .2790735 .0052758
+ 1033874.31 .2912493 .0054535
+ 1034018.81 .2890359 .0054762
+ 1034163.31 .2915387 .0054675
+ 1034307.62 .2876105 .0053686
+ 1034452.19 .2841167 .0053634
+ 1034596.62 .2904172 .0054955
+ 1034741.31 .2797557 .0053685
+ 1034885.81 .2860290 .0054566
+ 1035030.38 .2965241 .0056501
+ 1035175.12 .2829851 .0054204
+ 1035319.81 .2924334 .0056012
+ 1035464.50 .2799187 .0053991
+ 1035609.12 .2904242 .0055274
+ 1035754.00 .2937786 .0056012
+ 1035898.81 .2861829 .0054355
+ 1036043.62 .2800003 .0053547
+ 1036188.50 .2853512 .0054119
+ 1036333.31 .2816083 .0053541
+ 1036478.31 .2870038 .0054550
+ 1036623.12 .2828387 .0054198
+ 1036768.19 .2909798 .0054811
+ 1036913.31 .2876723 .0054324
+ 1037058.19 .2925572 .0055203
+ 1037203.31 .2895305 .0054977
+ 1037348.38 .2916139 .0055720
+ 1037493.62 .2940343 .0055221
+ 1037638.62 .2873996 .0054033
+ 1037783.88 .2867583 .0054423
+ 1037929.19 .2948732 .0055568
+ 1038074.31 .2851300 .0054513
+ 1038219.69 .2818880 .0053460
+ 1038364.88 .2854759 .0054664
+ 1038510.31 .2797298 .0053606
+ 1038655.62 .2737678 .0052657
+ 1038801.12 .2894191 .0055178
+ 1038946.62 .2823508 .0053627
+ 1039091.88 .2889820 .0054528
+ 1039237.50 .2832647 .0054306
+ 1039382.88 .2770112 .0052696
+ 1039528.62 .2781383 .0053160
+ 1039674.12 .2793725 .0053388
+ 1039819.81 .2809566 .0053892
+ 1039965.50 .2676771 .0051742
+ 1040111.12 .2691392 .0052036
+ 1040256.88 .2717801 .0052466
+ 1040402.50 .2688884 .0052616
+ 1040548.31 .2653993 .0052331
+ 1040694.19 .2494554 .0049644
+ 1040839.88 .2522860 .0050446
+ 1040985.88 .2375892 .0047900
+ 1041131.69 .2440159 .0049522
+ 1041277.69 .2228756 .0046184
+ 1041423.62 .2139931 .0044867
+ 1041569.62 .2041476 .0043422
+ 1041715.69 .1844131 .0040890
+ 1041861.62 .1719505 .0039517
+ 1042007.81 .1500399 .0036491
+ 1042153.81 .1293278 .0033466
+ 1042300.00 .1097052 .0030515
+ 1042446.12 .0885897 .0027225
+ 1042592.38 .0684730 .0023585
+ 1042738.69 .0616857 .0022629
+ 1042884.88 .0535852 .0020746
+ 1043031.19 .0590978 .0021838
+ 1043177.38 .0733579 .0024467
+ 1043323.88 .0853316 .0026270
+ 1043470.19 .1119863 .0030521
+ 1043616.69 .1348836 .0033834
+ 1043763.19 .1628188 .0037897
+ 1043909.62 .1870048 .0041364
+ 1044056.12 .2011349 .0043262
+ 1044202.62 .2209330 .0045762
+ 1044349.31 .2354642 .0047708
+ 1044495.88 .2465309 .0049382
+ 1044642.38 .2600458 .0051012
+ 1044789.19 .2642010 .0051734
+ 1044935.81 .2815917 .0054509
+ 1045082.62 .2726801 .0052687
+ 1045229.31 .2777104 .0053788
+ 1045376.12 .2849808 .0054580
+ 1045523.00 .2961159 .0056342
+ 1045669.81 .2846512 .0053861
+ 1045816.69 .2938875 .0055694
+ 1045963.50 .2890421 .0053972
+ 1046110.50 .2959939 .0055372
+ 1046257.38 .2992499 .0055929
+ 1046404.50 .2902654 .0054435
+ 1046551.62 .3017872 .0055817
+ 1046698.62 .3009832 .0056490
+ 1046845.81 .3010956 .0056067
+ 1046992.81 .3199523 .0059062
+ 1047140.00 .3197601 .0058737
+ 1047287.12 .3017891 .0055931
+ 1047434.38 .2904677 .0054106
+ 1047581.69 .3072542 .0056420
+ 1047728.88 .3149139 .0058157
+ 1047876.31 .3050400 .0057202
+ 1048023.62 .3003084 .0055794
+ 1048171.00 .3165395 .0057847
+ 1048318.31 .3116018 .0057606
+ 1048465.81 .3152967 .0058630
+ 1048613.38 .3205272 .0059621
+ 1048760.75 .3156996 .0059017
+ 1048908.38 .3043657 .0057772
+ 1049055.88 .3213336 .0060525
+ 1049203.50 .3154467 .0059285
+ 1049351.25 .3148840 .0059393
+ 1049498.75 .3169007 .0059241
+ 1049646.50 .3140336 .0059239
+ 1049794.12 .3099042 .0058502
+ 1049942.00 .3128448 .0059058
+ 1050089.62 .3064727 .0057717
+ 1050237.50 .3178626 .0058947
+ 1050385.50 .3050504 .0056845
+ 1050533.25 .3203210 .0059891
+ 1050681.25 .3084182 .0057633
+ 1050829.12 .3228393 .0059216
+ 1050977.12 .3173274 .0058844
+ 1051125.00 .3169844 .0058470
+ 1051273.12 .3124956 .0058301
+ 1051421.25 .3209709 .0059102
+ 1051569.25 .3193284 .0059089
+ 1051717.50 .3219206 .0059223
+ 1051865.50 .3117335 .0057711
+ 1052013.75 .3100340 .0057432
+ 1052161.88 .3243703 .0059977
+ 1052310.25 .3314222 .0061062
+ 1052458.62 .3156258 .0057972
+ 1052606.88 .3234442 .0059854
+ 1052755.25 .3185014 .0058988
+ 1052903.50 .3276651 .0060903
+ 1053052.00 .3228728 .0059730
+ 1053200.38 .3186886 .0059472
+ 1053348.88 .3254194 .0060905
+ 1053497.50 .3201986 .0059496
+ 1053645.88 .3266454 .0060895
+ 1053794.50 .3165502 .0059251
+ 1053943.00 .3207481 .0059917
+ 1054091.75 .3147499 .0058729
+ 1054240.50 .3160300 .0059056
+ 1054389.12 .3166114 .0058714
+ 1054537.88 .3290159 .0060797
+ 1054686.50 .3346082 .0061510
+ 1054835.38 .3240340 .0059766
+ 1054984.12 .3355407 .0061325
+ 1055133.00 .3260468 .0060105
+ 1055282.00 .3262267 .0059890
+ 1055430.75 .3258404 .0060543
+ 1055579.75 .3269146 .0060544
+ 1055728.75 .3211435 .0060242
+ 1055877.75 .3250285 .0061184
+ 1056026.75 .3225400 .0061270
+ 1056175.88 .3288691 .0062016
+ 1056325.00 .3423197 .0063935
+ 1056474.12 .3120726 .0058689
+ 1056623.25 .3240855 .0060823
+ 1056772.38 .3325042 .0062033
+ 1056921.75 .3258356 .0060276
+ 1057070.88 .3329866 .0061569
+ 1057220.25 .3331414 .0061218
+ 1057369.62 .3303611 .0060661
+ 1057518.88 .3297168 .0060883
+ 1057668.38 .3329628 .0061705
+ 1057817.62 .3349923 .0061442
+ 1057967.12 .3322613 .0060401
+ 1058116.75 .3333383 .0060645
+ 1058266.12 .3312467 .0059578
+ 1058415.75 .3212357 .0058397
+ 1058565.25 .3317602 .0060129
+ 1058714.88 .3275006 .0059065
+ 1058864.50 .3424593 .0061050
+ 1059014.25 .3362827 .0060768
+ 1059164.00 .3268553 .0059325
+ 1059313.62 .3309467 .0060258
+ 1059463.50 .3449553 .0062108
+ 1059613.12 .3290006 .0059652
+ 1059763.12 .3223116 .0058740
+ 1059912.88 .3383631 .0061099
+ 1060062.88 .3385048 .0060600
+ 1060212.75 .3473319 .0062080
+ 1060362.62 .3448376 .0062203
+ 1060512.75 .3312955 .0060067
+ 1060662.62 .3308821 .0060111
+ 1060812.75 .3349649 .0060194
+ 1060962.75 .3357723 .0060931
+ 1061113.00 .3361981 .0060876
+ 1061263.12 .3373467 .0061320
+ 1061413.25 .3380967 .0061099
+ 1061563.50 .3311252 .0060182
+ 1061713.75 .3373948 .0061056
+ 1061864.00 .3344410 .0060450
+ 1062014.25 .3322231 .0059644
+ 1062164.62 .3372071 .0061035
+ 1062315.12 .3342440 .0060477
+ 1062465.38 .3348729 .0060355
+ 1062615.88 .3294692 .0059739
+ 1062766.38 .3334027 .0060677
+ 1062916.88 .3403806 .0062037
+ 1063067.50 .3321712 .0060708
+ 1063218.00 .3452257 .0062992
+ 1063368.62 .3403254 .0062189
+ 1063519.12 .3406399 .0062204
+ 1063669.88 .3412137 .0061638
+ 1063820.50 .3342738 .0060483
+ 1063971.25 .3376478 .0061047
+ 1064122.12 .3450773 .0061702
+ 1064272.75 .3450556 .0062262
+ 1064423.75 .3254520 .0058783
+ 1064574.50 .3372679 .0060479
+ 1064725.38 .3402764 .0061763
+ 1064876.25 .3328467 .0060718
+ 1065027.25 .3442995 .0062228
+ 1065178.25 .3396377 .0061119
+ 1065329.25 .3462666 .0062147
+ 1065480.38 .3465209 .0062723
+ 1065631.38 .3553219 .0064651
+ 1065782.50 .3449488 .0061948
+ 1065933.62 .3427261 .0062550
+ 1066084.75 .3505805 .0062832
+ 1066236.12 .3397251 .0060784
+ 1066387.25 .3422997 .0061927
+ 1066538.50 .3444613 .0062071
+ 1066689.75 .3336386 .0059937
+ 1066841.12 .3280058 .0059215
+ 1066992.50 .3399868 .0060353
+ 1067143.88 .3452588 .0061696
+ 1067295.38 .3370214 .0060261
+ 1067446.75 .3428152 .0061296
+ 1067598.38 .3406190 .0060564
+ 1067749.75 .3404372 .0060830
+ 1067901.38 .3480190 .0061636
+ 1068053.12 .3489829 .0062910
+ 1068204.62 .3459708 .0061705
+ 1068356.38 .3457903 .0061538
+ 1068508.00 .3569263 .0063383
+ 1068659.75 .3430404 .0060922
+ 1068811.38 .3473389 .0061397
+ 1068963.25 .3351175 .0059415
+ 1069115.12 .3432734 .0060695
+ 1069266.88 .3468903 .0061411
+ 1069418.88 .3421109 .0061153
+ 1069570.62 .3473101 .0061021
+ 1069722.75 .3424007 .0060698
+ 1069874.62 .3446974 .0061491
+ 1070026.62 .3533822 .0062654
+ 1070178.75 .3495872 .0061905
+ 1070330.75 .3402718 .0060533
+ 1070483.00 .3441381 .0060455
+ 1070635.00 .3497702 .0061756
+ 1070787.25 .3568218 .0063016
+ 1070939.38 .3433339 .0061087
+ 1071091.62 .3435601 .0060671
+ 1071244.00 .3535423 .0062245
+ 1071396.25 .3481979 .0061266
+ 1071548.62 .3481700 .0061018
+ 1071700.88 .3461336 .0061055
+ 1071853.38 .3529479 .0062054
+ 1072005.88 .3451571 .0060650
+ 1072158.25 .3602661 .0062841
+ 1072310.88 .3523490 .0061487
+ 1072463.25 .3473763 .0060696
+ 1072615.88 .3396106 .0059417
+ 1072768.38 .3576346 .0061621
+ 1072921.12 .3432534 .0059418
+ 1073073.88 .3477190 .0060490
+ 1073226.50 .3529569 .0061260
+ 1073379.25 .3472769 .0060250
+ 1073532.00 .3612962 .0062743
+ 1073684.75 .3409479 .0059792
+ 1073837.50 .3550110 .0061730
+ 1073990.50 .3535684 .0061893
+ 1074143.38 .3606513 .0063249
+ 1074296.25 .3718350 .0064577
+ 1074449.25 .3616487 .0062728
+ 1074602.12 .3591016 .0062576
+ 1074755.25 .3551345 .0062165
+ 1074908.25 .3574348 .0062395
+ 1075061.38 .3405896 .0059893
+ 1075214.62 .3507810 .0061537
+ 1075367.62 .3623703 .0063278
+ 1075520.88 .3423808 .0060020
+ 1075674.00 .3649223 .0063702
+ 1075827.38 .3503695 .0061316
+ 1075980.50 .3547266 .0061822
+ 1076133.88 .3609208 .0063173
+ 1076287.38 .3537769 .0061865
+ 1076440.62 .3565057 .0061911
+ 1076594.12 .3536176 .0061933
+ 1076747.50 .3660605 .0063324
+ 1076901.00 .3464899 .0060687
+ 1077054.62 .3416557 .0059708
+ 1077208.12 .3542096 .0062330
+ 1077361.75 .3628490 .0063431
+ 1077515.25 .3562377 .0062065
+ 1077669.00 .3600299 .0062757
+ 1077822.50 .3672055 .0064602
+ 1077976.38 .3552086 .0062419
+ 1078130.12 .3683470 .0064421
+ 1078283.88 .3585882 .0062641
+ 1078437.75 .3631746 .0063571
+ 1078591.50 .3578603 .0062865
+ 1078745.38 .3676370 .0064219
+ 1078899.25 .3570470 .0062918
+ 1079053.25 .3570333 .0062335
+ 1079207.25 .3638513 .0063266
+ 1079361.25 .3577592 .0062445
+ 1079515.25 .3611396 .0062999
+ 1079669.25 .3592231 .0062981
+ 1079823.50 .3515380 .0061279
+ 1079977.50 .3565453 .0061931
+ 1080131.75 .3587970 .0062648
+ 1080286.00 .3601496 .0062930
+ 1080440.12 .3581174 .0062396
+ 1080594.50 .3684587 .0063819
+ 1080748.75 .3545621 .0061981
+ 1080903.12 .3771253 .0065292
+ 1081057.38 .3684906 .0063471
+ 1081211.88 .3743476 .0064807
+ 1081366.38 .3658627 .0063197
+ 1081520.75 .3644019 .0062724
+ 1081675.38 .3746316 .0064496
+ 1081829.75 .3731748 .0064546
+ 1081984.50 .3573342 .0062605
+ 1082139.12 .3647841 .0063248
+ 1082293.62 .3786056 .0064853
+ 1082448.38 .3561035 .0061427
+ 1082603.00 .3644892 .0062828
+ 1082757.75 .3668397 .0063462
+ 1082912.50 .3676760 .0063396
+ 1083067.38 .3633838 .0062584
+ 1083222.25 .3690545 .0063426
+ 1083377.00 .3661462 .0062978
+ 1083532.00 .3745413 .0064402
+ 1083686.88 .3773569 .0063986
+ 1083841.88 .3880737 .0066617
+ 1083996.88 .3769201 .0064445
+ 1084151.88 .3787977 .0065213
+ 1084307.00 .3825614 .0065718
+ 1084462.12 .4032740 .0069124
+ 1084617.25 .3973040 .0067860
+ 1084772.38 .3869372 .0066283
+ 1084927.62 .4033861 .0069189
+ 1085082.75 .4048521 .0069789
+ 1085238.12 .3693954 .0064405
+ 1085393.50 .3671966 .0063989
+ 1085548.75 .3607694 .0063256
+ 1085704.12 .3417550 .0060342
+ 1085859.50 .3536304 .0062024
+ 1086015.00 .3447357 .0060242
+ 1086170.38 .3432877 .0060603
+ 1086325.88 .3464742 .0060783
+ 1086481.50 .3489276 .0060791
+ 1086637.00 .3601599 .0063081
+ 1086792.62 .3680434 .0064213
+ 1086948.25 .3467924 .0060454
+ 1087104.00 .3618305 .0062656
+ 1087259.75 .3695458 .0063769
+ 1087415.38 .3607489 .0062346
+ 1087571.25 .3574525 .0061704
+ 1087726.88 .3493934 .0060436
+ 1087882.88 .3596764 .0062328
+ 1088038.62 .3598233 .0062579
+ 1088194.62 .3520979 .0061134
+ 1088350.62 .3711499 .0064518
+ 1088506.50 .3714284 .0064262
+ 1088662.50 .3665914 .0063888
+ 1088818.50 .3633257 .0063069
+ 1088974.62 .3704863 .0063450
+ 1089130.62 .3588316 .0062532
+ 1089286.88 .3699781 .0063581
+ 1089443.12 .3594484 .0061954
+ 1089599.25 .3668767 .0063686
+ 1089755.50 .3724925 .0064068
+ 1089911.62 .3745435 .0064183
+ 1090068.00 .3703574 .0063024
+ 1090224.25 .3692855 .0063307
+ 1090380.75 .3633133 .0062410
+ 1090537.25 .3678060 .0063181
+ 1090693.62 .3745485 .0064253
+ 1090850.12 .3715405 .0063826
+ 1091006.50 .3722787 .0063448
+ 1091163.12 .3825833 .0065869
+ 1091319.75 .3760649 .0064374
+ 1091476.38 .3706002 .0064482
+ 1091633.00 .3690111 .0064140
+ 1091789.62 .3813259 .0066037
+ 1091946.38 .3727790 .0066025
+ 1092103.00 .3683537 .0065041
+ 1092259.88 .3705215 .0065367
+ 1092416.75 .3606144 .0063758
+ 1092573.50 .3747694 .0065887
+ 1092730.50 .3682936 .0064653
+ 1092887.25 .3726259 .0064687
+ 1093044.38 .3648083 .0063506
+ 1093201.25 .3694729 .0063737
+ 1093358.25 .3789527 .0065356
+ 1093515.38 .3718410 .0064466
+ 1093672.38 .3788661 .0065451
+ 1093829.62 .3664732 .0063662
+ 1093986.62 .3751117 .0065113
+ 1094143.88 .3687846 .0064028
+ 1094301.00 .3712403 .0064765
+ 1094458.38 .3741012 .0064632
+ 1094615.75 .3735526 .0064897
+ 1094772.88 .3713064 .0063459
+ 1094930.38 .3707814 .0064164
+ 1095087.62 .3653585 .0063203
+ 1095245.12 .3696104 .0063771
+ 1095402.50 .3752114 .0065254
+ 1095560.12 .3696743 .0063953
+ 1095717.62 .3816334 .0065951
+ 1095875.12 .3775070 .0065677
+ 1096032.75 .3607492 .0063102
+ 1096190.38 .3740755 .0065048
+ 1096348.00 .3807076 .0066441
+ 1096505.75 .3737497 .0064980
+ 1096663.50 .3824932 .0066351
+ 1096821.25 .3723883 .0064656
+ 1096979.00 .3709073 .0063742
+ 1097136.88 .3724639 .0064230
+ 1097294.62 .3830423 .0066070
+ 1097452.62 .3676807 .0063501
+ 1097610.62 .3846667 .0066028
+ 1097768.50 .3809381 .0065338
+ 1097926.62 .3771361 .0064376
+ 1098084.50 .3729147 .0063895
+ 1098242.62 .3796898 .0065297
+ 1098400.62 .3754615 .0064972
+ 1098558.88 .3686904 .0064014
+ 1098717.12 .3848666 .0066399
+ 1098875.25 .3740768 .0064798
+ 1099033.50 .3639557 .0063176
+ 1099191.75 .3776925 .0065571
+ 1099350.12 .3742750 .0065119
+ 1099508.38 .3724832 .0064551
+ 1099666.75 .3688930 .0063850
+ 1099825.25 .3745502 .0064719
+ 1099983.62 .3850607 .0066114
+ 1100142.12 .3806209 .0065116
+ 1100300.62 .3700102 .0063812
+ 1100459.25 .3771761 .0064885
+ 1100617.75 .3692948 .0063770
+ 1100776.38 .3714846 .0063649
+ 1100935.12 .3805670 .0065425
+ 1101093.75 .3785547 .0065588
+ 1101252.50 .3745646 .0065149
+ 1101411.12 .3669989 .0063682
+ 1101570.00 .3899623 .0066682
+ 1101728.88 .3736297 .0063780
+ 1101887.62 .3682321 .0063378
+ 1102046.62 .3752488 .0064047
+ 1102205.50 .3791443 .0064791
+ 1102364.50 .3788666 .0064332
+ 1102523.38 .3868938 .0066077
+ 1102682.50 .3808407 .0064949
+ 1102841.62 .3885725 .0066264
+ 1103000.62 .3889798 .0065629
+ 1103159.88 .3819364 .0065161
+ 1103318.88 .3810640 .0065046
+ 1103478.25 .3859535 .0065478
+ 1103637.38 .3773833 .0064858
+ 1103796.62 .3912738 .0066145
+ 1103956.00 .3826084 .0064207
+ 1104115.25 .3812422 .0065197
+ 1104274.75 .3966201 .0067054
+ 1104434.00 .3751503 .0063734
+ 1104593.62 .3872985 .0065791
+ 1104753.00 .3834141 .0065411
+ 1104912.50 .3738505 .0063825
+ 1105072.12 .3976596 .0068524
+ 1105231.62 .3744977 .0064116
+ 1105391.38 .3825210 .0066478
+ 1105550.88 .3847987 .0066374
+ 1105710.62 .3884849 .0067323
+ 1105870.38 .3802798 .0066000
+ 1106030.12 .3806584 .0065803
+ 1106190.00 .3760156 .0065295
+ 1106349.62 .3911740 .0067537
+ 1106509.62 .3873293 .0066540
+ 1106669.38 .3883123 .0066542
+ 1106829.38 .3747396 .0064437
+ 1106989.38 .3889058 .0066658
+ 1107149.38 .3938689 .0067425
+ 1107309.50 .3732566 .0063988
+ 1107469.38 .3869341 .0065570
+ 1107629.62 .3919077 .0066444
+ 1107789.62 .3838038 .0064773
+ 1107949.88 .3878207 .0065395
+ 1108110.12 .3903462 .0065940
+ 1108270.25 .3809071 .0064521
+ 1108430.62 .3825705 .0064601
+ 1108590.88 .3891727 .0066254
+ 1108751.25 .3929057 .0066043
+ 1108911.62 .3805127 .0064871
+ 1109072.00 .3924299 .0066385
+ 1109232.50 .3745855 .0063134
+ 1109393.00 .3762700 .0064007
+ 1109553.50 .3828987 .0064852
+ 1109714.00 .3953254 .0066962
+ 1109874.62 .3835227 .0065365
+ 1110035.25 .3911322 .0066184
+ 1110195.88 .3881986 .0065640
+ 1110356.62 .3832108 .0065439
+ 1110517.38 .3926229 .0066300
+ 1110678.12 .3825287 .0065271
+ 1110838.88 .3879009 .0066399
+ 1110999.75 .3971137 .0067616
+ 1111160.75 .3919510 .0066345
+ 1111321.50 .3934914 .0066346
+ 1111482.50 .3969024 .0067754
+ 1111643.38 .3923054 .0066617
+ 1111804.50 .3920219 .0066462
+ 1111965.38 .3910898 .0065743
+ 1112126.62 .3900926 .0065894
+ 1112287.75 .4005422 .0067554
+ 1112448.88 .3853318 .0066024
+ 1112610.12 .3908588 .0065870
+ 1112771.25 .3879489 .0065924
+ 1112932.50 .3970999 .0067543
+ 1113093.75 .3963809 .0067466
+ 1113255.12 .3923365 .0066338
+ 1113416.50 .3930183 .0066470
+ 1113577.88 .3874541 .0065282
+ 1113739.38 .3761201 .0063791
+ 1113900.75 .3980839 .0067507
+ 1114062.25 .3864844 .0065935
+ 1114223.75 .3925503 .0067272
+ 1114385.38 .3924128 .0067529
+ 1114547.00 .3878151 .0066776
+ 1114708.62 .4001342 .0068596
+ 1114870.38 .3871214 .0067125
+ 1115031.88 .3880180 .0067220
+ 1115193.75 .3828441 .0066521
+ 1115355.50 .3884449 .0067756
+ 1115517.38 .3806347 .0066573
+ 1115679.25 .3948963 .0068945
+ 1115841.00 .3862061 .0067381
+ 1116003.00 .3866207 .0067418
+ 1116164.88 .3909685 .0068272
+ 1116327.00 .3849795 .0066807
+ 1116489.00 .3978012 .0069160
+ 1116651.00 .3874326 .0066930
+ 1116813.12 .3832959 .0066057
+ 1116975.25 .4009259 .0068527
+ 1117137.50 .4022213 .0068985
+ 1117299.62 .3822099 .0065177
+ 1117461.88 .3931480 .0066904
+ 1117624.25 .3845535 .0065569
+ 1117786.50 .3947822 .0067296
+ 1117948.88 .3946368 .0067266
+ 1118111.12 .3928682 .0066760
+ 1118273.62 .3796453 .0064854
+ 1118436.00 .3808236 .0065518
+ 1118598.50 .3905415 .0066824
+ 1118761.12 .3877003 .0066646
+ 1118923.62 .3875376 .0066536
+ 1119086.25 .3861081 .0066650
+ 1119248.75 .3925084 .0067693
+ 1119411.50 .3795832 .0064784
+ 1119574.12 .3905575 .0066851
+ 1119737.00 .3807773 .0065241
+ 1119899.75 .3925677 .0067041
+ 1120062.50 .3866418 .0066953
+ 1120225.38 .3760634 .0064633
+ 1120388.25 .3760082 .0063669
+ 1120551.12 .3820160 .0066246
+ 1120714.25 .3710922 .0064388
+ 1120877.12 .3781227 .0065654
+ 1121040.12 .3886692 .0067054
+ 1121203.12 .3934190 .0067773
+ 1121366.25 .3874214 .0066506
+ 1121529.38 .3880833 .0066303
+ 1121692.62 .3868094 .0066216
+ 1121855.88 .3904287 .0066766
+ 1122019.00 .3970711 .0067841
+ 1122182.38 .3902139 .0066910
+ 1122345.50 .3906119 .0067271
+ 1122508.88 .3817129 .0065265
+ 1122672.25 .3673861 .0063273
+ 1122835.75 .3949571 .0067543
+ 1122999.25 .3945481 .0067874
+ 1123162.62 .3747176 .0065163
+ 1123326.25 .3865909 .0066341
+ 1123489.62 .3914596 .0067225
+ 1123653.38 .3908905 .0066340
+ 1123816.88 .3765492 .0064542
+ 1123980.62 .3876618 .0065894
+ 1124144.38 .3876294 .0066667
+ 1124308.00 .3643900 .0062951
+ 1124471.88 .3780536 .0065025
+ 1124635.50 .3926037 .0067598
+ 1124799.50 .3889986 .0066554
+ 1124963.25 .3761228 .0064926
+ 1125127.25 .3860755 .0066477
+ 1125291.25 .3852661 .0066163
+ 1125455.12 .3821475 .0066303
+ 1125619.25 .3857989 .0066108
+ 1125783.12 .3828932 .0065501
+ 1125947.38 .3912168 .0067063
+ 1126111.50 .3930931 .0067067
+ 1126275.62 .3971079 .0067720
+ 1126439.88 .3987142 .0067240
+ 1126604.00 .3853250 .0065435
+ 1126768.38 .3947082 .0067176
+ 1126932.62 .3949110 .0066662
+ 1127097.00 .3938033 .0066415
+ 1127261.38 .3874003 .0065664
+ 1127425.75 .3999235 .0067337
+ 1127590.25 .3965892 .0067042
+ 1127754.62 .3970072 .0066973
+ 1127919.25 .3998165 .0067583
+ 1128083.75 .4004898 .0067663
+ 1128248.38 .3976431 .0067417
+ 1128413.12 .4113755 .0069185
+ 1128577.62 .4079126 .0068269
+ 1128742.50 .3922902 .0066204
+ 1128907.12 .3974086 .0066439
+ 1129072.00 .4105298 .0067772
+ 1129236.62 .4112361 .0068186
+ 1129401.62 .4196193 .0069075
+ 1129566.50 .3985504 .0066273
+ 1129731.38 .3982854 .0066160
+ 1129896.38 .4008231 .0066160
+ 1130061.25 .4111010 .0067626
+ 1130226.38 .4082532 .0067842
+ 1130391.38 .4081823 .0067064
+ 1130556.50 .4076182 .0066804
+ 1130721.75 .4128446 .0068304
+ 1130886.75 .4033174 .0066580
+ 1131052.12 .4119659 .0067691
+ 1131217.25 .4162456 .0068153
+ 1131382.62 .4029654 .0065997
+ 1131548.00 .4089761 .0067468
+ 1131713.25 .4026195 .0066314
+ 1131878.75 .4146642 .0067931
+ 1132044.00 .4194105 .0068688
+ 1132209.62 .4134535 .0068007
+ 1132375.00 .4115461 .0068072
+ 1132540.62 .4073305 .0066869
+ 1132706.25 .4131537 .0067905
+ 1132871.75 .4124464 .0067435
+ 1133037.50 .4176568 .0068129
+ 1133203.00 .4182783 .0068321
+ 1133368.88 .4011572 .0065881
+ 1133534.50 .4214409 .0068838
+ 1133700.38 .4088173 .0067812
+ 1133866.25 .4178657 .0068640
+ 1134032.00 .4306400 .0071192
+ 1134198.00 .4275034 .0070201
+ 1134363.88 .4091933 .0067447
+ 1134529.88 .4285649 .0070380
+ 1134695.75 .4125285 .0068963
+ 1134861.88 .4112535 .0068189
+ 1135028.00 .4264256 .0070858
+ 1135194.12 .4097061 .0068266
+ 1135360.25 .4162704 .0069255
+ 1135526.38 .4291787 .0071635
+ 1135692.75 .4207287 .0069626
+ 1135858.88 .4281142 .0070714
+ 1136025.25 .4377629 .0072599
+ 1136191.62 .4409582 .0072675
+ 1136357.88 .4238340 .0069976
+ 1136524.38 .4314384 .0071246
+ 1136690.75 .4234492 .0070159
+ 1136857.38 .4323909 .0071492
+ 1137023.88 .4284520 .0070264
+ 1137190.38 .4243663 .0069503
+ 1137357.00 .4300685 .0070406
+ 1137523.62 .4239004 .0069138
+ 1137690.38 .4232929 .0069420
+ 1137856.88 .4233810 .0069459
+ 1138023.75 .4168748 .0068622
+ 1138190.62 .4427880 .0072710
+ 1138357.25 .4297246 .0071109
+ 1138524.25 .4461863 .0073260
+ 1138691.00 .4390605 .0072128
+ 1138858.00 .4200019 .0069293
+ 1139024.88 .4373448 .0072272
+ 1139192.00 .4215499 .0069345
+ 1139359.00 .4248770 .0069669
+ 1139526.00 .4384926 .0071965
+ 1139693.25 .4392614 .0071462
+ 1139860.25 .4328639 .0070662
+ 1140027.50 .4375365 .0071386
+ 1140194.62 .4110491 .0067144
+ 1140362.00 .4357063 .0071008
+ 1140529.38 .4393792 .0072275
+ 1140696.50 .4438632 .0073444
+ 1140864.00 .4368133 .0072120
+ 1141031.25 .4314137 .0071030
+ 1141198.75 .4306379 .0071047
+ 1141366.38 .4245434 .0070040
+ 1141533.75 .4423521 .0072729
+ 1141701.38 .4496416 .0074315
+ 1141868.88 .4271388 .0071206
+ 1142036.62 .4382777 .0072789
+ 1142204.12 .4438230 .0073153
+ 1142371.88 .4421376 .0073149
+ 1142539.75 .4370680 .0072318
+ 1142707.38 .4352975 .0071577
+ 1142875.25 .4366208 .0071472
+ 1143043.00 .4611684 .0074621
+ 1143211.00 .4385501 .0071123
+ 1143378.75 .4451666 .0072191
+ 1143546.88 .4479222 .0072135
+ 1143714.88 .4374923 .0070431
+ 1143882.88 .4348824 .0070255
+ 1144051.00 .4526386 .0073194
+ 1144219.00 .4479410 .0071886
+ 1144387.25 .4489662 .0072800
+ 1144555.25 .4557778 .0073473
+ 1144723.50 .4425203 .0071734
+ 1144891.88 .4401889 .0071618
+ 1145060.12 .4439491 .0072825
+ 1145228.50 .4491566 .0072984
+ 1145396.75 .4482597 .0072866
+ 1145565.25 .4526920 .0073684
+ 1145733.62 .4625556 .0074672
+ 1145902.12 .4554642 .0072961
+ 1146070.75 .4658868 .0075062
+ 1146239.12 .4513992 .0073248
+ 1146407.75 .4578354 .0074263
+ 1146576.38 .4620204 .0075070
+ 1146745.12 .4528916 .0073385
+ 1146913.88 .4583896 .0074214
+ 1147082.50 .4548329 .0073433
+ 1147251.38 .4555211 .0073676
+ 1147420.00 .4493959 .0072323
+ 1147589.00 .4559882 .0073579
+ 1147757.75 .4703959 .0075414
+ 1147926.75 .4459121 .0071905
+ 1148095.75 .4488176 .0072342
+ 1148264.62 .4582573 .0074015
+ 1148433.75 .4501502 .0072834
+ 1148602.75 .4399349 .0071327
+ 1148772.00 .4321683 .0070839
+ 1148941.00 .4323790 .0070534
+ 1149110.25 .4382568 .0071572
+ 1149279.50 .4297348 .0070027
+ 1149448.75 .4486363 .0073116
+ 1149618.12 .4612203 .0074290
+ 1149787.38 .4700195 .0075566
+ 1149956.75 .4760475 .0076393
+ 1150126.12 .4694706 .0075686
+ 1150295.62 .4678517 .0075706
+ 1150465.12 .4766903 .0076880
+ 1150634.62 .4654942 .0075978
+ 1150804.25 .4709786 .0076214
+ 1150973.75 .4823574 .0077591
+ 1151143.38 .4873542 .0078351
+ 1151313.00 .4852898 .0077731
+ 1151482.75 .4860899 .0077520
+ 1151652.62 .4816813 .0076154
+ 1151822.25 .4759586 .0076048
+ 1151992.12 .4691203 .0074693
+ 1152161.88 .4844656 .0076417
+ 1152331.88 .4920944 .0077891
+ 1152501.88 .4862710 .0076897
+ 1152671.75 .4948689 .0078351
+ 1152841.88 .4908169 .0077908
+ 1153011.75 .5071657 .0080329
+ 1153182.00 .5025669 .0079733
+ 1153352.00 .4893236 .0077342
+ 1153522.25 .4954393 .0078467
+ 1153692.50 .4805961 .0075990
+ 1153862.62 .5037432 .0079465
+ 1154033.00 .4950801 .0078038
+ 1154203.25 .4865405 .0076271
+ 1154373.62 .4967189 .0077964
+ 1154543.88 .4834044 .0076062
+ 1154714.38 .5055595 .0079490
+ 1154884.88 .4985280 .0078702
+ 1155055.38 .5045009 .0079196
+ 1155226.00 .4968261 .0078115
+ 1155396.38 .4919286 .0076786
+ 1155567.12 .5076678 .0079338
+ 1155737.62 .5180260 .0080596
+ 1155908.38 .5123361 .0079257
+ 1156079.25 .5132579 .0079727
+ 1156249.88 .5252229 .0080594
+ 1156420.75 .5328417 .0082002
+ 1156591.50 .5370166 .0082220
+ 1156762.50 .5416220 .0083039
+ 1156933.50 .5368364 .0081527
+ 1157104.25 .5466366 .0083103
+ 1157275.38 .5465293 .0082939
+ 1157446.25 .5434860 .0083081
+ 1157617.50 .5605475 .0084809
+ 1157788.50 .5575805 .0084978
+ 1157959.62 .5741144 .0086803
+ 1158130.88 .5536856 .0083632
+ 1158302.00 .5695873 .0086576
+ 1158473.38 .5860553 .0088469
+ 1158644.62 .5934628 .0089434
+ 1158816.00 .5876408 .0087534
+ 1158987.25 .6015407 .0089502
+ 1159158.75 .5932109 .0088102
+ 1159330.25 .6225495 .0091794
+ 1159501.62 .6244584 .0091345
+ 1159673.25 .6262644 .0092174
+ 1159844.75 .6238740 .0091204
+ 1160016.38 .6409105 .0093134
+ 1160187.88 .6502619 .0093996
+ 1160359.62 .6838552 .0097847
+ 1160531.50 .6740329 .0097379
+ 1160703.12 .6803505 .0097234
+ 1160875.00 .7049299 .0101102
+ 1161046.75 .7448743 .0106051
+ 1161218.62 .7158264 .0102118
+ 1161390.50 .7463006 .0106576
+ 1161562.50 .7225063 .0102180
+ 1161734.50 .7416824 .0106310
+ 1161906.50 .7169019 .0103497
+ 1162078.62 .6984335 .0100871
+ 1162250.62 .6675919 .0097625
+ 1162422.75 .6175687 .0091232
+ 1162595.00 .5929934 .0088528
+ 1162767.12 .5627670 .0085257
+ 1162939.50 .5245295 .0080904
+ 1163111.62 .4808257 .0075719
+ 1163284.00 .4477572 .0072008
+ 1163456.38 .4244587 .0069630
+ 1163628.75 .4046206 .0067966
+ 1163801.25 .4016134 .0067505
+ 1163973.62 .3725968 .0063502
+ 1164146.25 .3557309 .0061602
+ 1164318.75 .3630032 .0062986
+ 1164491.38 .3556202 .0061950
+ 1164664.00 .3605174 .0062496
+ 1164836.62 .3701404 .0064375
+ 1165009.50 .3505089 .0061429
+ 1165182.12 .3640782 .0063420
+ 1165355.00 .3626966 .0063407
+ 1165527.75 .3609944 .0062881
+ 1165700.62 .3634802 .0063817
+ 1165873.50 .3680575 .0063691
+ 1166046.50 .3731694 .0064540
+ 1166219.50 .3783590 .0065164
+ 1166392.38 .3771372 .0064623
+ 1166565.50 .3781822 .0064408
+ 1166738.50 .3782096 .0064104
+ 1166911.75 .3746369 .0064260
+ 1167084.88 .3933053 .0066638
+ 1167258.12 .3908515 .0066772
+ 1167431.50 .3938002 .0066483
+ 1167604.62 .3977989 .0067403
+ 1167778.00 .3922401 .0066610
+ 1167951.25 .4046478 .0067763
+ 1168124.75 .3975172 .0067055
+ 1168298.25 .4076117 .0067841
+ 1168471.62 .3950449 .0065850
+ 1168645.25 .3936044 .0066296
+ 1168818.75 .4089048 .0068173
+ 1168992.38 .4119800 .0068368
+ 1169165.88 .3964767 .0066143
+ 1169339.62 .4177234 .0069604
+ 1169513.50 .4215455 .0070092
+ 1169687.12 .4387488 .0072867
+ 1169861.00 .4234948 .0069942
+ 1170034.75 .4233246 .0069753
+ 1170208.62 .4226049 .0069144
+ 1170382.50 .4217053 .0068748
+ 1170556.50 .4211695 .0069167
+ 1170730.50 .4411744 .0071906
+ 1170904.50 .4329745 .0070517
+ 1171078.62 .4373834 .0071673
+ 1171252.62 .4407040 .0071748
+ 1171426.88 .4250261 .0069494
+ 1171600.88 .4382259 .0071863
+ 1171775.12 .4340848 .0070667
+ 1171949.50 .4396093 .0071322
+ 1172123.75 .4279604 .0069946
+ 1172298.12 .4364426 .0070763
+ 1172472.38 .4571465 .0074491
+ 1172646.88 .4409653 .0071444
+ 1172821.38 .4344048 .0070016
+ 1172995.75 .4427812 .0072504
+ 1173170.38 .4466614 .0072939
+ 1173344.88 .4577714 .0074984
+ 1173519.50 .4585076 .0074463
+ 1173694.12 .4551401 .0073868
+ 1173868.88 .4506969 .0073719
+ 1174043.62 .4541530 .0073771
+ 1174218.38 .4541028 .0072880
+ 1174393.25 .4560901 .0073173
+ 1174567.88 .4522412 .0072865
+ 1174742.88 .4539993 .0073050
+ 1174917.75 .4566097 .0072407
+ 1175092.75 .4550972 .0072510
+ 1175267.75 .4550952 .0072582
+ 1175442.75 .4622115 .0073868
+ 1175617.88 .4645638 .0074032
+ 1175792.88 .4661772 .0074589
+ 1175968.12 .4613755 .0074375
+ 1176143.25 .4676226 .0074786
+ 1176318.50 .4643863 .0074139
+ 1176493.88 .4750149 .0075800
+ 1176669.12 .4789601 .0075736
+ 1176844.50 .4680631 .0074134
+ 1177019.75 .4670037 .0073340
+ 1177195.25 .4751305 .0074542
+ 1177370.62 .4772424 .0074690
+ 1177546.25 .4719693 .0073587
+ 1177721.88 .4810872 .0075422
+ 1177897.38 .4742430 .0074407
+ 1178073.12 .4856303 .0076358
+ 1178248.62 .4806122 .0075885
+ 1178424.38 .4808543 .0076509
+ 1178600.25 .4770803 .0075482
+ 1178775.88 .4853549 .0077036
+ 1178951.75 .4875765 .0076889
+ 1179127.62 .4759386 .0075975
+ 1179303.50 .4856980 .0076510
+ 1179479.38 .4987182 .0078755
+ 1179655.38 .4786626 .0074781
+ 1179831.50 .4735391 .0074807
+ 1180007.50 .4880377 .0076750
+ 1180183.62 .4842382 .0075998
+ 1180359.75 .4953495 .0077551
+ 1180536.00 .4999226 .0078552
+ 1180712.00 .5139467 .0080294
+ 1180888.38 .4924912 .0077377
+ 1181064.75 .4980912 .0078840
+ 1181241.00 .4963728 .0078305
+ 1181417.38 .5001788 .0079418
+ 1181593.75 .4904285 .0077679
+ 1181770.25 .5065334 .0079469
+ 1181946.62 .5016962 .0079053
+ 1182123.25 .4905484 .0077329
+ 1182299.88 .5095751 .0079941
+ 1182476.38 .4833269 .0075705
+ 1182653.12 .4929541 .0077492
+ 1182829.75 .5017360 .0079113
+ 1183006.50 .4933548 .0077867
+ 1183183.25 .5048369 .0079329
+ 1183360.12 .4986695 .0079129
+ 1183537.00 .4956828 .0078340
+ 1183713.88 .5043328 .0080209
+ 1183890.88 .4971620 .0078123
+ 1184067.75 .5085004 .0080364
+ 1184244.75 .5017531 .0079570
+ 1184421.88 .4997745 .0079447
+ 1184598.88 .5013525 .0079400
+ 1184776.12 .5047334 .0079823
+ 1184953.12 .5109277 .0080404
+ 1185130.38 .5115371 .0080907
+ 1185307.62 .4997590 .0078189
+ 1185484.88 .4993160 .0077695
+ 1185662.38 .5090080 .0078698
+ 1185839.62 .5148448 .0079594
+ 1186017.12 .5112042 .0079529
+ 1186194.38 .4929474 .0076654
+ 1186372.00 .5064776 .0078909
+ 1186549.38 .5136849 .0079454
+ 1186727.00 .5107327 .0079490
+ 1186904.75 .5090482 .0078571
+ 1187082.25 .5005088 .0077520
+ 1187260.00 .5212513 .0080538
+ 1187437.62 .5193735 .0079526
+ 1187615.50 .4973604 .0076390
+ 1187793.25 .4988980 .0077620
+ 1187971.12 .5194779 .0079819
+ 1188149.12 .5238068 .0080996
+ 1188326.88 .4982575 .0076839
+ 1188504.88 .5050486 .0077658
+ 1188682.88 .4949406 .0076456
+ 1188861.00 .5071535 .0078526
+ 1189039.00 .4985780 .0076180
+ 1189217.12 .5096238 .0078372
+ 1189395.38 .5011334 .0077624
+ 1189573.50 .5132835 .0080042
+ 1189751.75 .5064393 .0079279
+ 1189930.00 .4964901 .0077125
+ 1190108.38 .4895325 .0076602
+ 1190286.88 .5183467 .0081456
+ 1190465.12 .5170745 .0081135
+ 1190643.62 .5087596 .0079732
+ 1190822.00 .5026504 .0078303
+ 1191000.62 .5155377 .0079859
+ 1191179.12 .4943498 .0076266
+ 1191357.75 .4963937 .0077481
+ 1191536.50 .5041175 .0077903
+ 1191715.12 .4938334 .0076733
+ 1191893.88 .5009902 .0077047
+ 1192072.50 .4837961 .0074936
+ 1192251.38 .4946318 .0076876
+ 1192430.12 .4965371 .0077104
+ 1192609.12 .5031189 .0078645
+ 1192788.12 .4815218 .0075435
+ 1192967.00 .4903756 .0076815
+ 1193146.12 .4712272 .0073905
+ 1193325.00 .4671454 .0073168
+ 1193504.25 .4749829 .0074238
+ 1193683.25 .4687751 .0073716
+ 1193862.50 .4693230 .0073480
+ 1194041.75 .4712518 .0074468
+ 1194220.88 .4769122 .0075099
+ 1194400.25 .4577598 .0072391
+ 1194579.50 .4610451 .0072775
+ 1194759.00 .4699382 .0074906
+ 1194938.38 .4544857 .0072950
+ 1195117.75 .4528013 .0072277
+ 1195297.38 .4679236 .0074341
+ 1195476.75 .4529904 .0072532
+ 1195656.50 .4370560 .0070072
+ 1195836.00 .4450091 .0071032
+ 1196015.62 .4388443 .0070374
+ 1196195.50 .4375769 .0070838
+ 1196375.12 .4339062 .0070750
+ 1196554.88 .4287942 .0069436
+ 1196734.62 .4238717 .0068297
+ 1196914.62 .4274334 .0069858
+ 1197094.38 .4156005 .0067736
+ 1197274.38 .4194970 .0067829
+ 1197454.50 .4124730 .0067158
+ 1197634.38 .4228116 .0068692
+ 1197814.50 .4102270 .0067010
+ 1197994.50 .4181832 .0068061
+ 1198174.75 .4212945 .0068848
+ 1198354.75 .4145889 .0067585
+ 1198535.12 .4115148 .0067064
+ 1198715.50 .4177019 .0068405
+ 1198895.62 .4185910 .0068167
+ 1199076.12 .4099877 .0067311
+ 1199256.38 .3963221 .0065243
+ 1199436.88 .4056378 .0066610
+ 1199617.25 .3975442 .0065181
+ 1199797.75 .4005671 .0066180
+ 1199978.38 .3962099 .0065943
+ 1200158.88 .3903949 .0065285
+ 1200339.62 .3903341 .0065888
+ 1200520.25 .3806385 .0064441
+ 1200701.00 .3419360 .0058797
+ 1200881.75 .3352035 .0058851
+ 1201062.50 .3179545 .0056780
+ 1201243.38 .3059635 .0055331
+ 1201424.12 .2873512 .0052782
+ 1201605.12 .2701080 .0050867
+ 1201786.00 .2526990 .0048607
+ 1201967.12 .2400984 .0047424
+ 1202148.25 .2167996 .0043789
+ 1202329.25 .2121142 .0043589
+ 1202510.38 .1941208 .0041113
+ 1202691.50 .1987478 .0041914
+ 1202872.75 .1882822 .0040570
+ 1203053.88 .1763802 .0038577
+ 1203235.25 .1807984 .0039570
+ 1203416.62 .1776362 .0038948
+ 1203597.88 .1776983 .0039357
+ 1203779.38 .1757900 .0038959
+ 1203960.75 .1834037 .0040200
+ 1204142.25 .1807409 .0039855
+ 1204323.75 .1794617 .0039703
+ 1204505.38 .1840367 .0039999
+ 1204687.00 .1823991 .0040339
+ 1204868.62 .1790391 .0039062
+ 1205050.38 .1850311 .0039551
+ 1205232.00 .1867781 .0040087
+ 1205413.88 .1937666 .0041251
+ 1205595.62 .1861683 .0039802
+ 1205777.50 .1994826 .0042229
+ 1205959.50 .1954403 .0041378
+ 1206141.38 .1985850 .0041710
+ 1206323.38 .1920878 .0040899
+ 1206505.38 .2084164 .0043723
+ 1206687.50 .2020617 .0042167
+ 1206869.62 .2015672 .0042619
+ 1207051.75 .2102587 .0044362
+ 1207234.00 .2072094 .0043290
+ 1207416.12 .2030665 .0042078
+ 1207598.50 .2120751 .0044123
+ 1207780.62 .2090636 .0043007
+ 1207963.12 .2251978 .0045518
+ 1208145.50 .2159184 .0044135
+ 1208327.88 .2274923 .0045724
+ 1208510.50 .2159849 .0043957
+ 1208692.88 .2254804 .0045509
+ 1208875.50 .2299797 .0046308
+ 1209058.00 .2261500 .0044937
+ 1209240.75 .2289893 .0045246
+ 1209423.50 .2253072 .0044842
+ 1209606.12 .2373998 .0046724
+ 1209789.00 .2344400 .0045820
+ 1209971.62 .2354234 .0046686
+ 1210154.62 .2363279 .0046451
+ 1210337.38 .2471074 .0048402
+ 1210520.38 .2412831 .0047443
+ 1210703.50 .2407019 .0047455
+ 1210886.38 .2413457 .0047614
+ 1211069.50 .2421696 .0048065
+ 1211252.50 .2474734 .0048768
+ 1211435.75 .2523484 .0049252
+ 1211619.00 .2395653 .0047487
+ 1211802.12 .2361936 .0046665
+ 1211985.50 .2444538 .0047962
+ 1212168.62 .2479799 .0048313
+ 1212352.12 .2548845 .0049320
+ 1212535.38 .2525132 .0048965
+ 1212718.88 .2587533 .0049649
+ 1212902.38 .2714169 .0051465
+ 1213085.88 .2690317 .0050892
+ 1213269.50 .2652473 .0050288
+ 1213453.00 .2639853 .0049633
+ 1213636.75 .2716304 .0051020
+ 1213820.25 .2721071 .0050807
+ 1214004.12 .2765235 .0052005
+ 1214187.88 .2779841 .0051616
+ 1214371.62 .2827603 .0052543
+ 1214555.50 .2774716 .0051327
+ 1214739.38 .2666194 .0050035
+ 1214923.38 .2812300 .0052098
+ 1215107.25 .2801742 .0052284
+ 1215291.38 .2844303 .0052708
+ 1215475.50 .2837262 .0052526
+ 1215659.50 .2861323 .0052545
+ 1215843.62 .2800921 .0051734
+ 1216027.75 .2817882 .0051572
+ 1216212.00 .2820505 .0051633
+ 1216396.25 .2978539 .0054198
+ 1216580.62 .2892510 .0053387
+ 1216765.00 .2897958 .0053083
+ 1216949.38 .2962319 .0054588
+ 1217133.88 .2862810 .0053095
+ 1217318.25 .2941554 .0054179
+ 1217502.88 .2955053 .0054537
+ 1217687.50 .2915574 .0054161
+ 1217872.00 .2902087 .0053477
+ 1218056.62 .2864210 .0052906
+ 1218241.25 .2952427 .0054339
+ 1218426.12 .3069938 .0056678
+ 1218610.75 .2942085 .0054767
+ 1218795.62 .2961625 .0054915
+ 1218980.62 .2981481 .0055257
+ 1219165.38 .3042062 .0056360
+ 1219350.38 .3050654 .0056369
+ 1219535.25 .3043680 .0055672
+ 1219720.38 .3049938 .0056009
+ 1219905.38 .3055002 .0056106
+ 1220090.50 .3104058 .0056682
+ 1220275.75 .3085271 .0055940
+ 1220460.88 .3317046 .0059608
+ 1220646.12 .3167418 .0056920
+ 1220831.38 .3230517 .0058201
+ 1221016.75 .3220726 .0057795
+ 1221202.00 .3236577 .0057671
+ 1221387.50 .3313636 .0058591
+ 1221573.00 .3208935 .0056860
+ 1221758.38 .3291048 .0057953
+ 1221944.00 .3295268 .0057966
+ 1222129.50 .3281112 .0057345
+ 1222315.12 .3282472 .0058023
+ 1222500.75 .3373400 .0059138
+ 1222686.50 .3355870 .0058982
+ 1222872.25 .3440501 .0060240
+ 1223058.00 .3341139 .0058533
+ 1223243.88 .3348874 .0059040
+ 1223429.62 .3388485 .0059538
+ 1223615.62 .3454430 .0060216
+ 1223801.62 .3450052 .0060305
+ 1223987.62 .3349861 .0058531
+ 1224173.75 .3492538 .0060533
+ 1224359.62 .3456095 .0060262
+ 1224545.88 .3487758 .0060231
+ 1224732.00 .3462049 .0060362
+ 1224918.25 .3469244 .0060162
+ 1225104.50 .3530525 .0060736
+ 1225290.75 .3478302 .0059893
+ 1225477.12 .3572972 .0061475
+ 1225663.50 .3654847 .0062314
+ 1225850.00 .3506925 .0060562
+ 1226036.25 .3676376 .0062842
+ 1226222.88 .3642816 .0062953
+ 1226409.50 .3547617 .0060563
+ 1226596.00 .3590138 .0061595
+ 1226782.75 .3633544 .0062194
+ 1226969.25 .3512751 .0060373
+ 1227156.12 .3662116 .0062896
+ 1227342.75 .3677262 .0062776
+ 1227529.62 .3711791 .0063817
+ 1227716.50 .3618395 .0062127
+ 1227903.38 .3626892 .0062540
+ 1228090.38 .3678833 .0063261
+ 1228277.25 .3674883 .0063203
+ 1228464.38 .3799074 .0064817
+ 1228651.50 .3702482 .0063273
+ 1228838.50 .3689606 .0062971
+ 1229025.75 .3623288 .0061740
+ 1229212.75 .3728675 .0063412
+ 1229400.12 .3844408 .0064620
+ 1229587.25 .3731529 .0063236
+ 1229774.62 .3800930 .0063943
+ 1229962.12 .3738982 .0063689
+ 1230149.38 .3784411 .0064090
+ 1230336.88 .3817051 .0064158
+ 1230524.38 .3794343 .0063739
+ 1230711.88 .3769550 .0062771
+ 1230899.38 .3853816 .0064405
+ 1231087.12 .3859114 .0064966
+ 1231274.88 .3826950 .0064778
+ 1231462.38 .3863436 .0064707
+ 1231650.25 .3884701 .0065422
+ 1231838.00 .3961918 .0066223
+ 1232025.88 .3908564 .0064826
+ 1232213.62 .3973576 .0066391
+ 1232401.62 .3908322 .0064880
+ 1232589.62 .4094350 .0067615
+ 1232777.62 .4065902 .0067368
+ 1232965.75 .4079483 .0067454
+ 1233153.75 .3948430 .0065751
+ 1233341.88 .4027706 .0066742
+ 1233530.00 .4067763 .0067438
+ 1233718.25 .4039019 .0066622
+ 1233906.62 .3999603 .0065836
+ 1234094.88 .4033926 .0066463
+ 1234283.25 .4141009 .0067646
+ 1234471.50 .4036298 .0066113
+ 1234660.00 .4178841 .0068688
+ 1234848.62 .4179032 .0068471
+ 1235037.00 .4151479 .0068579
+ 1235225.62 .4096565 .0067454
+ 1235414.12 .4175012 .0068856
+ 1235602.88 .4172442 .0068594
+ 1235791.50 .4349447 .0071337
+ 1235980.38 .4328173 .0071283
+ 1236169.12 .4305421 .0069884
+ 1236357.88 .4377292 .0071155
+ 1236546.88 .4291294 .0069898
+ 1236735.62 .4412120 .0071143
+ 1236924.75 .4147787 .0067870
+ 1237113.62 .4381317 .0070677
+ 1237302.75 .4396954 .0071115
+ 1237491.88 .4347490 .0070062
+ 1237680.88 .4349976 .0070226
+ 1237870.12 .4398037 .0071398
+ 1238059.25 .4419233 .0071511
+ 1238248.62 .4415005 .0071933
+ 1238437.75 .4334374 .0070577
+ 1238627.25 .4591267 .0074111
+ 1238816.75 .4486788 .0072755
+ 1239006.00 .4530797 .0072966
+ 1239195.62 .4423094 .0071946
+ 1239385.00 .4511890 .0072969
+ 1239574.62 .4511662 .0073279
+ 1239764.12 .4537435 .0073608
+ 1239953.88 .4615611 .0074974
+ 1240143.62 .4628607 .0075226
+ 1240333.25 .4763576 .0077927
+ 1240523.12 .4703879 .0076973
+ 1240712.88 .4562998 .0075385
+ 1240902.75 .4746211 .0077937
+ 1241092.75 .4638641 .0076451
+ 1241282.62 .4830566 .0079547
+ 1241472.75 .4942112 .0081530
+ 1241662.62 .4759359 .0078073
+ 1241852.88 .4813120 .0079610
+ 1242042.88 .4859454 .0079631
+ 1242233.12 .4806418 .0079143
+ 1242423.38 .4922104 .0080249
+ 1242613.50 .4969623 .0080491
+ 1242804.00 .4940194 .0079951
+ 1242994.25 .5007220 .0080464
+ 1243184.62 .4940018 .0079216
+ 1243375.00 .5077386 .0080534
+ 1243565.50 .5146889 .0081388
+ 1243756.12 .5231960 .0082920
+ 1243946.62 .5250803 .0083097
+ 1244137.25 .5315500 .0084110
+ 1244327.88 .5194103 .0081790
+ 1244518.62 .5284523 .0083576
+ 1244709.25 .5229353 .0081915
+ 1244900.12 .5344118 .0083755
+ 1245091.00 .5381991 .0083722
+ 1245281.88 .5402690 .0083800
+ 1245472.88 .5591903 .0086283
+ 1245663.62 .5451150 .0083629
+ 1245854.75 .5419289 .0083068
+ 1246045.75 .5441542 .0083063
+ 1246236.88 .5627637 .0085422
+ 1246428.12 .5721523 .0086147
+ 1246619.12 .5681897 .0085379
+ 1246810.50 .5820517 .0088173
+ 1247001.62 .5723321 .0086171
+ 1247193.00 .5835049 .0087356
+ 1247384.50 .5846636 .0087849
+ 1247575.75 .5973642 .0089713
+ 1247767.38 .5941406 .0088875
+ 1247958.75 .5754100 .0085063
+ 1248150.38 .6138162 .0091378
+ 1248341.75 .5939756 .0087838
+ 1248533.50 .6106132 .0090270
+ 1248725.25 .5972435 .0088539
+ 1248916.88 .6085804 .0089879
+ 1249108.62 .6143841 .0090609
+ 1249300.38 .6125340 .0089787
+ 1249492.25 .6214107 .0090846
+ 1249684.12 .6168072 .0090770
+ 1249876.12 .6191503 .0090775
+ 1250068.12 .6471792 .0094817
+ 1250260.12 .6378733 .0093067
+ 1250452.25 .6337653 .0092823
+ 1250644.25 .6282030 .0092145
+ 1250836.50 .6309043 .0091933
+ 1251028.50 .6393476 .0093812
+ 1251220.88 .6315063 .0092137
+ 1251413.25 .6323404 .0092499
+ 1251605.50 .6525837 .0095556
+ 1251797.88 .6480156 .0094152
+ 1251990.25 .6603257 .0096504
+ 1252182.75 .6349281 .0092990
+ 1252375.38 .6410162 .0093693
+ 1252567.88 .6429473 .0094073
+ 1252760.50 .6271665 .0092250
+ 1252953.00 .6241392 .0092114
+ 1253145.75 .6261808 .0092063
+ 1253338.38 .6246276 .0092156
+ 1253531.25 .6290138 .0092976
+ 1253724.12 .6077122 .0090587
+ 1253917.00 .5990995 .0089454
+ 1254109.88 .6012658 .0089889
+ 1254302.75 .6014845 .0089940
+ 1254495.88 .5939339 .0089960
+ 1254688.75 .5665548 .0085993
+ 1254882.00 .5841701 .0089253
+ 1255075.12 .5764251 .0087589
+ 1255268.25 .5700266 .0087796
+ 1255461.50 .5657951 .0086824
+ 1255654.75 .5533203 .0085623
+ 1255848.12 .5364453 .0083196
+ 1256041.38 .5524302 .0085489
+ 1256234.88 .5368193 .0082952
+ 1256428.38 .5335913 .0082789
+ 1256621.75 .5372208 .0083481
+ 1256815.38 .5221874 .0082148
+ 1257008.88 .5027027 .0079675
+ 1257202.50 .4867874 .0077041
+ 1257396.12 .4872026 .0077702
+ 1257589.88 .4705523 .0074649
+ 1257783.75 .4835435 .0077368
+ 1257977.38 .4730919 .0075778
+ 1258171.38 .4575686 .0073973
+ 1258365.12 .4518101 .0073217
+ 1258559.12 .4420632 .0071710
+ 1258753.25 .4374911 .0071109
+ 1258947.12 .4203784 .0068095
+ 1259141.25 .4248577 .0068827
+ 1259335.25 .4357878 .0071232
+ 1259529.50 .4171328 .0068384
+ 1259723.62 .4061361 .0067143
+ 1259918.00 .3939786 .0065460
+ 1260112.38 .4072960 .0067984
+ 1260306.62 .4011266 .0066648
+ 1260501.12 .3953021 .0065892
+ 1260695.38 .3878455 .0065263
+ 1260890.00 .3772099 .0063116
+ 1261084.38 .3692875 .0062440
+ 1261279.00 .3561634 .0060849
+ 1261473.75 .3653760 .0061437
+ 1261668.25 .3485087 .0059899
+ 1261863.00 .3473227 .0059635
+ 1262057.62 .3399056 .0058769
+ 1262252.50 .3337584 .0058461
+ 1262447.25 .3228522 .0057137
+ 1262642.25 .3209451 .0057439
+ 1262837.25 .2989492 .0054272
+ 1263032.12 .2863511 .0053203
+ 1263227.25 .2564540 .0049098
+ 1263422.12 .2288508 .0045989
+ 1263617.38 .2053932 .0043029
+ 1263812.38 .1552350 .0035907
+ 1264007.75 .1264901 .0031687
+ 1264203.00 .1092416 .0029426
+ 1264398.25 .0998122 .0028022
+ 1264593.62 .0960252 .0027274
+ 1264788.88 .1198453 .0031198
+ 1264984.38 .1431413 .0034042
+ 1265180.00 .1742443 .0038717
+ 1265375.38 .2155183 .0044178
+ 1265571.00 .2433414 .0047443
+ 1265766.50 .2687178 .0050837
+ 1265962.25 .2833213 .0052980
+ 1266157.88 .2892551 .0053237
+ 1266353.62 .3062817 .0055518
+ 1266549.50 .3032557 .0054859
+ 1266745.25 .3225020 .0057665
+ 1266941.25 .3128548 .0055990
+ 1267137.00 .3177027 .0056745
+ 1267333.12 .3178400 .0056833
+ 1267529.00 .3216349 .0057418
+ 1267725.12 .3219032 .0057014
+ 1267921.38 .3295522 .0058099
+ 1268117.38 .3228825 .0057398
+ 1268313.62 .3251593 .0057238
+ 1268509.75 .3190420 .0056717
+ 1268706.12 .3278532 .0057717
+ 1268902.38 .3180968 .0056595
+ 1269098.88 .3262788 .0057933
+ 1269295.38 .3351690 .0058919
+ 1269491.75 .3259149 .0057498
+ 1269688.25 .3262530 .0057243
+ 1269884.75 .3234950 .0056831
+ 1270081.50 .3154248 .0055499
+ 1270278.25 .3290117 .0057604
+ 1270474.75 .3294811 .0056991
+ 1270671.62 .3318295 .0058330
+ 1270868.25 .3243878 .0056735
+ 1271065.25 .3288172 .0057934
+ 1271262.00 .3400043 .0058794
+ 1271459.00 .3369492 .0058880
+ 1271656.00 .3258804 .0057319
+ 1271853.00 .3352654 .0058876
+ 1272050.12 .3326790 .0057600
+ 1272247.12 .3261354 .0057006
+ 1272444.38 .3307606 .0057751
+ 1272641.50 .3368002 .0058924
+ 1272838.75 .3286085 .0057685
+ 1273036.12 .3299379 .0058133
+ 1273233.38 .3259929 .0057195
+ 1273430.88 .3379399 .0059536
+ 1273628.25 .3310502 .0058318
+ 1273825.75 .3317283 .0058482
+ 1274023.12 .3150529 .0056143
+ 1274220.88 .3240460 .0057571
+ 1274418.50 .3250040 .0057631
+ 1274616.12 .3358583 .0059460
+ 1274813.88 .3363954 .0059443
+ 1275011.50 .3275034 .0058090
+ 1275209.38 .3332657 .0059550
+ 1275407.12 .3379177 .0060936
+ 1275605.12 .3244083 .0058235
+ 1275803.12 .3275365 .0058903
+ 1276001.00 .3281401 .0058915
+ 1276199.12 .3286456 .0059132
+ 1276397.12 .3368852 .0059926
+ 1276595.25 .3280878 .0058916
+ 1276793.50 .3283125 .0058590
+ 1276991.62 .3417942 .0061003
+ 1277190.00 .3240197 .0057842
+ 1277388.25 .3350243 .0060135
+ 1277586.62 .3277626 .0058926
+ 1277785.00 .3319412 .0059789
+ 1277983.50 .3301089 .0059609
+ 1278182.00 .3263463 .0058596
+ 1278380.50 .3349451 .0060161
+ 1278579.12 .3324079 .0059624
+ 1278777.62 .3191757 .0057315
+ 1278976.50 .3284284 .0058265
+ 1279175.00 .3330165 .0059126
+ 1279373.88 .3258795 .0057559
+ 1279572.75 .3263697 .0058005
+ 1279771.62 .3324213 .0058930
+ 1279970.50 .3338853 .0059602
+ 1280169.38 .3304460 .0058806
+ 1280368.50 .3295418 .0058340
+ 1280567.38 .3294658 .0058453
+ 1280766.62 .3324814 .0059144
+ 1280965.88 .3321635 .0057961
+ 1281164.88 .3414901 .0059989
+ 1281364.25 .3341478 .0058811
+ 1281563.38 .3333441 .0058398
+ 1281762.88 .3389377 .0059263
+ 1281962.12 .3289809 .0058078
+ 1282161.62 .3427295 .0060447
+ 1282361.12 .3345067 .0059325
+ 1282560.50 .3356718 .0059029
+ 1282760.25 .3418686 .0060032
+ 1282959.75 .3498651 .0061185
+ 1283159.38 .3457240 .0060298
+ 1283359.25 .3409039 .0059693
+ 1283558.88 .3415881 .0059214
+ 1283758.75 .3524315 .0061085
+ 1283958.50 .3492665 .0061008
+ 1284158.50 .3372119 .0058284
+ 1284358.25 .3348560 .0058146
+ 1284558.38 .3471918 .0060332
+ 1284758.50 .3379365 .0058936
+ 1284958.38 .3308427 .0057892
+ 1285158.62 .3422632 .0059090
+ 1285358.62 .3380627 .0058309
+ 1285559.00 .3426020 .0059620
+ 1285759.12 .3441805 .0059917
+ 1285959.50 .3475249 .0060349
+ 1286160.00 .3551615 .0061253
+ 1286360.25 .3327963 .0057991
+ 1286560.75 .3461179 .0059390
+ 1286761.12 .3478545 .0060134
+ 1286961.75 .3416876 .0059409
+ 1287162.25 .3549305 .0061115
+ 1287363.00 .3443817 .0059130
+ 1287563.75 .3531558 .0060635
+ 1287764.38 .3540142 .0061302
+ 1287965.25 .3516298 .0060435
+ 1288166.00 .3519096 .0061075
+ 1288366.88 .3553739 .0061387
+ 1288567.75 .3509373 .0060664
+ 1288768.75 .3500078 .0060355
+ 1288969.88 .3495022 .0060613
+ 1289170.88 .3451179 .0059843
+ 1289372.00 .3560819 .0061498
+ 1289573.12 .3441052 .0059935
+ 1289774.38 .3515220 .0061075
+ 1289975.75 .3661683 .0062650
+ 1290176.88 .3452816 .0059899
+ 1290378.25 .3526498 .0060627
+ 1290579.62 .3502966 .0060269
+ 1290781.12 .3553028 .0061129
+ 1290982.50 .3524078 .0060785
+ 1291184.12 .3481560 .0059938
+ 1291385.75 .3584716 .0061755
+ 1291587.25 .3435431 .0058982
+ 1291789.00 .3500906 .0060339
+ 1291990.62 .3515625 .0060651
+ 1292192.50 .3483761 .0060201
+ 1292394.25 .3540656 .0060933
+ 1292596.12 .3549287 .0061092
+ 1292798.12 .3561499 .0062031
+ 1293000.00 .3534198 .0061624
+ 1293202.12 .3536350 .0061885
+ 1293404.00 .3469258 .0061253
+ 1293606.25 .3505016 .0061570
+ 1293808.25 .3543820 .0061841
+ 1294010.50 .3511175 .0061451
+ 1294212.88 .3658435 .0063527
+ 1294415.00 .3570755 .0062235
+ 1294617.50 .3662175 .0063913
+ 1294819.75 .3594519 .0062493
+ 1295022.25 .3655426 .0064183
+ 1295224.75 .3543706 .0062181
+ 1295427.25 .3450422 .0060924
+ 1295629.88 .3572713 .0062943
+ 1295832.38 .3619686 .0063684
+ 1296035.12 .3480963 .0061450
+ 1296237.75 .3579462 .0063072
+ 1296440.62 .3584311 .0063186
+ 1296643.50 .3670411 .0064019
+ 1296846.25 .3530268 .0061930
+ 1297049.25 .3614042 .0063306
+ 1297252.12 .3507204 .0061515
+ 1297455.12 .3570712 .0062470
+ 1297658.12 .3518808 .0061357
+ 1297861.25 .3477750 .0060897
+ 1298064.50 .3615932 .0063012
+ 1298267.62 .3682274 .0063628
+ 1298470.88 .3654269 .0063225
+ 1298674.12 .3558491 .0062086
+ 1298877.50 .3566070 .0062290
+ 1299080.75 .3605249 .0062909
+ 1299284.38 .3649257 .0063927
+ 1299487.88 .3648579 .0063347
+ 1299691.25 .3705928 .0063807
+ 1299895.00 .3583758 .0062299
+ 1300098.50 .3628230 .0063132
+ 1300302.25 .3683340 .0064002
+ 1300505.88 .3668099 .0063493
+ 1300709.75 .3698989 .0064428
+ 1300913.62 .3679934 .0064151
+ 1301117.38 .3638719 .0063243
+ 1301321.38 .3607085 .0062346
+ 1301525.25 .3747908 .0065550
+ 1301729.25 .3620825 .0063049
+ 1301933.38 .3628581 .0063406
+ 1302137.38 .3676005 .0064141
+ 1302341.62 .3705058 .0064080
+ 1302545.75 .3611567 .0063508
+ 1302750.12 .3633758 .0062994
+ 1302954.25 .3739295 .0064675
+ 1303158.75 .3651248 .0063782
+ 1303363.12 .3571144 .0062266
+ 1303567.50 .3673687 .0064171
+ 1303772.12 .3709253 .0065299
+ 1303976.50 .3688141 .0064911
+ 1304181.12 .3689926 .0064419
+ 1304385.62 .3646759 .0063947
+ 1304590.50 .3752417 .0064982
+ 1304795.25 .3660977 .0063924
+ 1304999.88 .3619637 .0063811
+ 1305204.88 .3698515 .0064400
+ 1305409.62 .3712869 .0065110
+ 1305614.62 .3622621 .0063311
+ 1305819.50 .3652943 .0064155
+ 1306024.62 .3677890 .0064961
+ 1306229.75 .3732421 .0065147
+ 1306434.75 .3612973 .0063549
+ 1306640.00 .3819213 .0066814
+ 1306845.12 .3691684 .0065396
+ 1307050.38 .3637502 .0064577
+ 1307255.62 .3722358 .0065549
+ 1307461.12 .3715706 .0065652
+ 1307666.50 .3598187 .0063325
+ 1307871.88 .3644529 .0064168
+ 1308077.50 .3677237 .0064935
+ 1308282.88 .3688008 .0064301
+ 1308488.62 .3734940 .0064697
+ 1308694.38 .3765010 .0065254
+ 1308899.88 .3751742 .0065326
+ 1309105.75 .3647453 .0063218
+ 1309311.50 .3658584 .0063940
+ 1309517.38 .3709671 .0064885
+ 1309723.12 .3894371 .0067137
+ 1309929.12 .3766875 .0065210
+ 1310135.25 .3628632 .0063099
+ 1310341.12 .3771438 .0065549
+ 1310547.38 .3805675 .0066267
+ 1310753.38 .3752561 .0064819
+ 1310959.62 .3764241 .0065611
+ 1311165.75 .3702007 .0063594
+ 1311372.12 .3642781 .0063475
+ 1311578.50 .3713907 .0063971
+ 1311784.75 .3863980 .0066563
+ 1311991.25 .3722890 .0064721
+ 1312197.62 .3857705 .0066505
+ 1312404.25 .3658979 .0063445
+ 1312610.75 .3849419 .0066638
+ 1312817.50 .3657897 .0063611
+ 1313024.25 .3716892 .0064686
+ 1313230.75 .3756254 .0065252
+ 1313437.62 .3667077 .0063854
+ 1313644.38 .3736015 .0065041
+ 1313851.38 .3763059 .0065387
+ 1314058.38 .3759899 .0065357
+ 1314265.12 .3761927 .0065232
+ 1314472.25 .3765486 .0065449
+ 1314679.25 .3865675 .0067139
+ 1314886.38 .3739606 .0064912
+ 1315093.50 .3764869 .0065329
+ 1315300.75 .3836887 .0067128
+ 1315508.12 .3875794 .0067726
+ 1315715.25 .3717409 .0065156
+ 1315922.75 .3800650 .0066493
+ 1316130.00 .3821065 .0066902
+ 1316337.62 .3715133 .0065182
+ 1316545.00 .3737575 .0065261
+ 1316752.62 .3739601 .0065843
+ 1316960.25 .3752111 .0065637
+ 1317167.88 .3832771 .0066826
+ 1317375.62 .3696273 .0064793
+ 1317583.25 .3811221 .0066069
+ 1317791.12 .3803934 .0065935
+ 1317998.88 .3638290 .0063435
+ 1318206.88 .3825029 .0066379
+ 1318414.88 .3743927 .0065595
+ 1318622.75 .3786155 .0065413
+ 1318830.88 .3783244 .0065934
+ 1319038.88 .3816867 .0066709
+ 1319247.12 .3785957 .0066204
+ 1319455.12 .3757249 .0065923
+ 1319663.50 .3897907 .0067811
+ 1319871.88 .3800835 .0066142
+ 1320080.12 .3798089 .0066427
+ 1320288.62 .3751415 .0065961
+ 1320496.88 .3899623 .0067915
+ 1320705.50 .3700471 .0064339
+ 1320914.12 .3767107 .0065226
+ 1321122.62 .3786478 .0065904
+ 1321331.25 .3802155 .0066164
+ 1321539.88 .3838534 .0066461
+ 1321748.62 .3846290 .0066430
+ 1321957.38 .3838984 .0066178
+ 1322166.25 .3974388 .0068747
+ 1322375.25 .3722902 .0064638
+ 1322584.12 .3831872 .0066704
+ 1322793.12 .3877766 .0067064
+ 1323002.00 .3910415 .0067469
+ 1323211.25 .3880900 .0066734
+ 1323420.25 .3808278 .0065645
+ 1323629.50 .3711702 .0064548
+ 1323838.88 .3838954 .0066845
+ 1324048.00 .3916994 .0068440
+ 1324257.38 .3862714 .0067188
+ 1324466.62 .3897303 .0068403
+ 1324676.12 .3923811 .0068008
+ 1324885.50 .3856300 .0067336
+ 1325095.12 .3979212 .0068860
+ 1325304.88 .3778544 .0065553
+ 1325514.38 .3913662 .0067500
+ 1325724.12 .3799808 .0065435
+ 1325933.75 .3776742 .0065551
+ 1326143.62 .3826919 .0066178
+ 1326353.25 .3837602 .0066126
+ 1326563.25 .3900870 .0066803
+ 1326773.25 .3796056 .0065142
+ 1326983.12 .3809858 .0065825
+ 1327193.25 .3862990 .0066102
+ 1327403.25 .3923118 .0067570
+ 1327613.38 .3839912 .0065932
+ 1327823.75 .3800607 .0065270
+ 1328033.75 .3815028 .0065526
+ 1328244.12 .3835939 .0065827
+ 1328454.38 .3929753 .0067232
+ 1328664.88 .3817948 .0065157
+ 1328875.12 .3967638 .0067792
+ 1329085.75 .3806812 .0065398
+ 1329296.38 .3866284 .0065984
+ 1329506.75 .3863857 .0065975
+ 1329717.50 .3881068 .0065969
+ 1329928.12 .3843828 .0065394
+ 1330138.88 .3924986 .0066698
+ 1330349.50 .3931326 .0066920
+ 1330560.50 .3887347 .0066247
+ 1330771.38 .3960847 .0067753
+ 1330982.25 .3923930 .0067479
+ 1331193.38 .3915165 .0067127
+ 1331404.25 .4019512 .0069257
+ 1331615.38 .3847131 .0066694
+ 1331826.38 .3853311 .0066468
+ 1332037.62 .3822872 .0066359
+ 1332249.00 .3854147 .0066432
+ 1332460.12 .3816943 .0066266
+ 1332671.62 .3822254 .0065792
+ 1332882.88 .3804336 .0065944
+ 1333094.38 .3668779 .0063183
+ 1333305.88 .3856482 .0066126
+ 1333517.38 .3657364 .0063612
+ 1333729.00 .3622636 .0063199
+ 1333940.50 .3809028 .0066222
+ 1334152.25 .3691625 .0064461
+ 1334363.88 .3729531 .0064716
+ 1334575.75 .3660658 .0063398
+ 1334787.75 .3752549 .0064406
+ 1334999.50 .3761131 .0065050
+ 1335211.50 .3818453 .0065369
+ 1335423.38 .3734209 .0064406
+ 1335635.50 .3899648 .0066843
+ 1335847.50 .3857128 .0066110
+ 1336059.62 .3899598 .0066883
+ 1336272.00 .4080849 .0069794
+ 1336484.12 .3844216 .0065718
+ 1336696.50 .3822257 .0066076
+ 1336908.62 .3986900 .0068135
+ 1337121.12 .3803726 .0064884
+ 1337333.50 .3908928 .0066660
+ 1337546.00 .3928180 .0067036
+ 1337758.62 .3857808 .0065938
+ 1337971.12 .3880439 .0066239
+ 1338183.88 .3925618 .0066972
+ 1338396.50 .3854586 .0066921
+ 1338609.25 .3802573 .0066343
+ 1338822.00 .3899675 .0067929
+ 1339034.88 .3908295 .0068295
+ 1339247.88 .3968468 .0069250
+ 1339460.75 .3906785 .0068351
+ 1339673.88 .3802272 .0066894
+ 1339886.75 .3922088 .0069421
+ 1340100.00 .3982483 .0070053
+ 1340313.12 .3747624 .0066358
+ 1340526.25 .3791893 .0066477
+ 1340739.62 .4001083 .0069614
+ 1340952.75 .3930520 .0067910
+ 1341166.25 .3989962 .0068436
+ 1341379.50 .3936084 .0067917
+ 1341593.12 .4023359 .0068612
+ 1341806.62 .3884919 .0066582
+ 1342020.12 .3977279 .0068073
+ 1342233.75 .3952342 .0067485
+ 1342447.38 .3894988 .0066156
+ 1342661.12 .3930677 .0067293
+ 1342874.75 .3997012 .0068266
+ 1343088.75 .4030201 .0068564
+ 1343302.62 .4021389 .0068255
+ 1343516.50 .3912228 .0066456
+ 1343730.50 .3875887 .0066268
+ 1343944.38 .4025103 .0068030
+ 1344158.62 .3973890 .0067786
+ 1344372.62 .3922653 .0066611
+ 1344586.88 .3900346 .0066664
+ 1344801.12 .3903288 .0066556
+ 1345015.25 .4039495 .0068549
+ 1345229.75 .3878389 .0066665
+ 1345444.00 .4037705 .0068978
+ 1345658.50 .3960058 .0067444
+ 1345872.88 .3926576 .0067262
+ 1346087.50 .3938423 .0067054
+ 1346302.12 .3957990 .0067902
+ 1346516.62 .3992549 .0067876
+ 1346731.50 .4008860 .0068344
+ 1346946.12 .3916119 .0066743
+ 1347161.00 .3862003 .0065702
+ 1347375.88 .3903359 .0066396
+ 1347590.62 .3926835 .0066997
+ 1347805.62 .4001231 .0068053
+ 1348020.50 .4006014 .0067913
+ 1348235.62 .3949004 .0067178
+ 1348450.62 .4003139 .0067791
+ 1348665.88 .4036519 .0068788
+ 1348881.25 .3920560 .0066753
+ 1349096.38 .3975658 .0068321
+ 1349311.75 .3959586 .0067581
+ 1349527.00 .3949719 .0067396
+ 1349742.50 .3967016 .0068130
+ 1349957.75 .3989901 .0067798
+ 1350173.38 .4078312 .0069432
+ 1350389.00 .4102594 .0069871
+ 1350604.50 .4102079 .0069624
+ 1350820.25 .4029739 .0068678
+ 1351035.88 .3929687 .0067085
+ 1351251.75 .3930810 .0067231
+ 1351467.50 .3926986 .0066602
+ 1351683.38 .4013730 .0068181
+ 1351899.38 .3976326 .0068485
+ 1352115.25 .3978568 .0067371
+ 1352331.38 .4035686 .0068188
+ 1352547.38 .3968608 .0067364
+ 1352763.62 .3967209 .0067772
+ 1352979.62 .3909313 .0066709
+ 1353196.00 .3852544 .0066459
+ 1353412.38 .3837894 .0065809
+ 1353628.50 .4143287 .0070296
+ 1353845.00 .3804301 .0065161
+ 1354061.38 .3900322 .0066711
+ 1354277.88 .3976926 .0068269
+ 1354494.62 .3878413 .0066601
+ 1354711.00 .3947677 .0067566
+ 1354927.75 .3921091 .0067416
+ 1355144.38 .3876761 .0066721
+ 1355361.25 .3918933 .0067635
+ 1355577.88 .3936957 .0067660
+ 1355794.88 .3869154 .0066600
+ 1356011.88 .3947381 .0068121
+ 1356228.75 .3798640 .0065365
+ 1356445.75 .3781133 .0065560
+ 1356662.75 .3828974 .0066456
+ 1356880.00 .3942784 .0067876
+ 1357097.00 .3806947 .0065378
+ 1357314.38 .3903497 .0067381
+ 1357531.62 .3850425 .0065782
+ 1357748.88 .3720729 .0064246
+ 1357966.38 .4017555 .0068892
+ 1358183.62 .3894606 .0066787
+ 1358401.25 .3914040 .0067396
+ 1358618.62 .3918189 .0067631
+ 1358836.38 .3990285 .0068253
+ 1359054.12 .3898266 .0067759
+ 1359271.62 .3913442 .0068242
+ 1359489.50 .3932527 .0068548
+ 1359707.12 .4001665 .0070312
+ 1359925.12 .3969210 .0069500
+ 1360143.12 .3876384 .0068109
+ 1360360.88 .3950500 .0069954
+ 1360579.00 .3856826 .0067944
+ 1360797.00 .3843862 .0067245
+ 1361015.12 .3962080 .0069688
+ 1361233.25 .3926629 .0068388
+ 1361451.50 .3894441 .0067551
+ 1361669.88 .3879561 .0067132
+ 1361888.12 .3889609 .0067244
+ 1362106.50 .3859741 .0067361
+ 1362324.88 .3805555 .0065809
+ 1362543.38 .4002896 .0068685
+ 1362761.88 .4046126 .0069021
+ 1362980.50 .4008669 .0067944
+ 1363199.25 .4107262 .0069537
+ 1363417.88 .3917130 .0066119
+ 1363636.62 .3963409 .0067006
+ 1363855.38 .4028265 .0068124
+ 1364074.25 .3910083 .0065663
+ 1364293.00 .3972124 .0066832
+ 1364512.12 .3885857 .0065705
+ 1364731.12 .3952583 .0066549
+ 1364950.12 .4032097 .0067802
+ 1365169.38 .4048478 .0068658
+ 1365388.38 .4036594 .0067904
+ 1365607.62 .4098253 .0069006
+ 1365826.88 .3862287 .0065368
+ 1366046.25 .3947830 .0066135
+ 1366265.75 .4026037 .0067657
+ 1366485.00 .4012385 .0067562
+ 1366704.62 .3955416 .0066663
+ 1366924.00 .4043429 .0067648
+ 1367143.75 .4133518 .0068890
+ 1367363.38 .4187938 .0070061
+ 1367583.00 .4041605 .0067938
+ 1367802.88 .4083081 .0068618
+ 1368022.50 .4075987 .0068589
+ 1368242.50 .3964184 .0066925
+ 1368462.25 .4102900 .0068792
+ 1368682.25 .4089419 .0068695
+ 1368902.38 .4159488 .0069317
+ 1369122.38 .4035388 .0066859
+ 1369342.50 .4034866 .0067543
+ 1369562.62 .4039990 .0067202
+ 1369782.88 .4120554 .0068820
+ 1370003.12 .3957474 .0065765
+ 1370223.50 .4245184 .0070664
+ 1370444.00 .4168940 .0069379
+ 1370664.25 .4174915 .0070038
+ 1370884.88 .4093685 .0068560
+ 1371105.25 .4152692 .0068852
+ 1371326.00 .4060878 .0067983
+ 1371546.50 .4084193 .0068414
+ 1371767.25 .4153191 .0068940
+ 1371988.12 .4098484 .0068382
+ 1372208.88 .4100373 .0068872
+ 1372429.75 .4069127 .0068206
+ 1372650.62 .3943715 .0065751
+ 1372871.62 .4122809 .0068603
+ 1373092.50 .4135334 .0068849
+ 1373313.75 .3988343 .0066187
+ 1373535.00 .4010008 .0067210
+ 1373756.00 .4121518 .0068823
+ 1373977.38 .3975922 .0066178
+ 1374198.50 .4248957 .0070809
+ 1374420.00 .4060690 .0067441
+ 1374641.50 .4147952 .0068653
+ 1374862.75 .4265518 .0070668
+ 1375084.38 .4062469 .0067521
+ 1375305.75 .4106145 .0068402
+ 1375527.50 .4076755 .0067934
+ 1375749.00 .4179923 .0069588
+ 1375970.88 .4245169 .0070625
+ 1376192.75 .4214860 .0070190
+ 1376414.38 .4106074 .0068568
+ 1376636.38 .4135296 .0069146
+ 1376858.25 .4111149 .0068598
+ 1377080.25 .4141468 .0068928
+ 1377302.25 .4179125 .0069843
+ 1377524.38 .4177803 .0069512
+ 1377746.62 .4091106 .0069063
+ 1377968.75 .4045959 .0068232
+ 1378191.12 .4060617 .0068142
+ 1378413.25 .4086578 .0069692
+ 1378635.75 .4061883 .0068979
+ 1378858.00 .4034754 .0068489
+ 1379080.62 .4023769 .0067326
+ 1379303.25 .3845634 .0065708
+ 1379525.62 .3867076 .0065830
+ 1379748.38 .3741469 .0064152
+ 1379971.00 .3914368 .0066965
+ 1380193.75 .3802201 .0064993
+ 1380416.62 .3846794 .0065865
+ 1380639.38 .3908587 .0065840
+ 1380862.38 .3927366 .0066355
+ 1381085.25 .4029833 .0067956
+ 1381308.38 .4181287 .0069990
+ 1381531.25 .4174061 .0069583
+ 1381754.50 .4206363 .0069800
+ 1381977.75 .4131082 .0069357
+ 1382200.88 .4261801 .0071205
+ 1382424.25 .4107450 .0068518
+ 1382647.50 .4212141 .0070425
+ 1382871.00 .4135362 .0068895
+ 1383094.25 .4231972 .0071579
+ 1383317.88 .4312164 .0072144
+ 1383541.50 .4106673 .0069761
+ 1383765.00 .4164957 .0070183
+ 1383988.75 .4105232 .0069998
+ 1384212.38 .4230696 .0071553
+ 1384436.25 .4129657 .0070375
+ 1384659.88 .4148968 .0071063
+ 1384883.88 .4239885 .0072264
+ 1385107.88 .4254157 .0072921
+ 1385331.75 .4250106 .0072720
+ 1385555.88 .4268236 .0073139
+ 1385779.88 .4160531 .0070968
+ 1386004.12 .4122319 .0070585
+ 1386228.25 .4170043 .0071255
+ 1386452.50 .4171251 .0070978
+ 1386677.00 .4229435 .0071480
+ 1386901.25 .4175361 .0070735
+ 1387125.75 .4300341 .0072307
+ 1387350.12 .4164113 .0070423
+ 1387574.75 .4221935 .0071098
+ 1387799.38 .4227338 .0071278
+ 1388023.88 .4184539 .0070436
+ 1388248.75 .4173204 .0070851
+ 1388473.38 .4190919 .0069985
+ 1388698.25 .4343287 .0073011
+ 1388923.00 .4273474 .0071575
+ 1389148.00 .4128623 .0069233
+ 1389373.00 .4355002 .0072635
+ 1389597.88 .4271411 .0071217
+ 1389823.12 .4252263 .0070859
+ 1390048.12 .4174629 .0069460
+ 1390273.38 .4281928 .0071020
+ 1390498.50 .4301580 .0071268
+ 1390723.88 .4269269 .0070884
+ 1390949.38 .4198270 .0069678
+ 1391174.62 .4197567 .0070148
+ 1391400.12 .4309042 .0071873
+ 1391625.62 .4375585 .0072637
+ 1391851.25 .4387568 .0073097
+ 1392076.75 .4351773 .0072518
+ 1392302.50 .4406812 .0073215
+ 1392528.38 .4285339 .0071423
+ 1392754.00 .4421214 .0073685
+ 1392980.00 .4307248 .0071860
+ 1393205.75 .4421880 .0073693
+ 1393431.75 .4313833 .0071622
+ 1393657.62 .4370895 .0072594
+ 1393883.88 .4351841 .0072833
+ 1394110.00 .4448386 .0074026
+ 1394336.12 .4252401 .0070658
+ 1394562.38 .4139192 .0068983
+ 1394788.62 .4498200 .0074424
+ 1395015.00 .4373672 .0072281
+ 1395241.50 .4391155 .0071955
+ 1395467.88 .4549904 .0074411
+ 1395694.50 .4402768 .0072734
+ 1395920.88 .4373520 .0072070
+ 1396147.62 .4378093 .0071729
+ 1396374.12 .4423443 .0073172
+ 1396601.00 .4476521 .0073451
+ 1396827.88 .4425230 .0072418
+ 1397054.50 .4605942 .0076301
+ 1397281.50 .4442237 .0073544
+ 1397508.38 .4471016 .0073695
+ 1397735.50 .4368983 .0072453
+ 1397962.38 .4446032 .0073552
+ 1398189.62 .4411858 .0072674
+ 1398416.88 .4475454 .0074341
+ 1398644.00 .4480314 .0074497
+ 1398871.38 .4552340 .0074599
+ 1399098.62 .4457222 .0073323
+ 1399326.00 .4638892 .0076570
+ 1399553.38 .4458419 .0073319
+ 1399781.00 .4487335 .0074205
+ 1400008.62 .4624139 .0076604
+ 1400236.12 .4434169 .0074071
+ 1400463.88 .4365220 .0073328
+ 1400691.50 .4626332 .0077140
+ 1400919.38 .4375677 .0074112
+ 1401147.25 .4397549 .0073940
+ 1401375.00 .4447901 .0074557
+ 1401603.12 .4354001 .0072976
+ 1401831.00 .4542140 .0075910
+ 1402059.12 .4549700 .0075927
+ 1402287.12 .4349427 .0072379
+ 1402515.38 .4327246 .0072352
+ 1402743.75 .4357311 .0072892
+ 1402971.88 .4361967 .0073150
+ 1403200.25 .4225409 .0070517
+ 1403428.62 .4277570 .0071096
+ 1403657.12 .4168301 .0069311
+ 1403885.50 .4149773 .0069840
+ 1404114.12 .4106900 .0068396
+ 1404342.88 .4060674 .0068520
+ 1404571.38 .3817183 .0065526
+ 1404800.25 .3850812 .0065210
+ 1405028.88 .3768252 .0064443
+ 1405257.88 .3836285 .0065978
+ 1405486.62 .3552926 .0061933
+ 1405715.62 .3424072 .0060241
+ 1405944.75 .3375462 .0060482
+ 1406173.75 .3163837 .0058020
+ 1406402.88 .2991914 .0055162
+ 1406632.00 .2831058 .0053648
+ 1406861.25 .2684460 .0052072
+ 1407090.50 .2436976 .0048580
+ 1407319.88 .2257387 .0045898
+ 1407549.38 .2169509 .0044909
+ 1407778.75 .1989090 .0042546
+ 1408008.38 .1732684 .0038881
+ 1408237.75 .1663488 .0038315
+ 1408467.50 .1547318 .0036339
+ 1408697.25 .1471357 .0035545
+ 1408926.88 .1375428 .0034163
+ 1409156.75 .1299172 .0033020
+ 1409386.50 .1345397 .0033973
+ 1409616.50 .1332686 .0033834
+ 1409846.38 .1325979 .0033508
+ 1410076.50 .1417513 .0034970
+ 1410306.62 .1389928 .0034284
+ 1410536.62 .1463158 .0035477
+ 1410766.88 .1619849 .0038110
+ 1410997.00 .1604263 .0037334
+ 1411227.50 .1619373 .0037667
+ 1411457.62 .1739831 .0039196
+ 1411688.12 .1854585 .0040828
+ 1411918.75 .1902099 .0041545
+ 1412149.12 .1985826 .0042672
+ 1412379.88 .2097690 .0044315
+ 1412610.38 .2184225 .0045325
+ 1412841.12 .2152071 .0044674
+ 1413071.75 .2235774 .0045630
+ 1413302.62 .2325995 .0047092
+ 1413533.62 .2327502 .0046711
+ 1413764.38 .2436331 .0048355
+ 1413995.50 .2493929 .0049213
+ 1414226.38 .2547234 .0049843
+ 1414457.62 .2634629 .0051142
+ 1414688.62 .2704321 .0052203
+ 1414919.88 .2666539 .0051810
+ 1415151.25 .2692903 .0052512
+ 1415382.50 .2760954 .0052255
+ 1415614.00 .2746395 .0052829
+ 1415845.25 .2905799 .0054870
+ 1416076.88 .2836992 .0053890
+ 1416308.50 .2910786 .0055085
+ 1416540.00 .2857437 .0053789
+ 1416771.75 .2920842 .0054335
+ 1417003.38 .3063897 .0056552
+ 1417235.25 .3070133 .0056348
+ 1417466.88 .3150161 .0057351
+ 1417698.88 .3097056 .0056468
+ 1417930.88 .3146722 .0056863
+ 1418162.75 .3231961 .0058579
+ 1418395.00 .3192879 .0057998
+ 1418627.00 .3231278 .0058521
+ 1418859.25 .3252179 .0058336
+ 1419091.38 .3324675 .0059947
+ 1419323.75 .3270911 .0058738
+ 1419556.12 .3298832 .0059770
+ 1419788.38 .3336390 .0059924
+ 1420021.00 .3333235 .0059607
+ 1420253.38 .3473862 .0062003
+ 1420486.00 .3340926 .0060032
+ 1420718.50 .3292564 .0059381
+ 1420951.38 .3375054 .0060192
+ 1421184.12 .3418396 .0061188
+ 1421416.88 .3448740 .0061283
+ 1421649.75 .3521864 .0063198
+ 1421882.62 .3382697 .0061021
+ 1422115.62 .3455266 .0061653
+ 1422348.50 .3417772 .0060898
+ 1422581.75 .3487044 .0061852
+ 1422815.00 .3480513 .0061575
+ 1423048.12 .3530197 .0063022
+ 1423281.38 .3427539 .0061276
+ 1423514.62 .3501090 .0062400
+ 1423748.12 .3604637 .0064085
+ 1423981.62 .3492444 .0061978
+ 1424215.00 .3589301 .0064132
+ 1424448.62 .3692698 .0065177
+ 1424682.12 .3576615 .0063499
+ 1424915.88 .3671854 .0064850
+ 1425149.50 .3672006 .0065368
+ 1425383.38 .3619199 .0064570
+ 1425617.25 .3682666 .0065703
+ 1425851.00 .3650725 .0065037
+ 1426085.12 .3624234 .0065315
+ 1426319.00 .3584506 .0063217
+ 1426553.12 .3603408 .0064387
+ 1426787.12 .3664379 .0064947
+ 1427021.38 .3692271 .0065443
+ 1427255.75 .3548251 .0063399
+ 1427489.88 .3652064 .0064663
+ 1427724.38 .3652668 .0064601
+ 1427958.62 .3536743 .0062794
+ 1428193.25 .3628592 .0063965
+ 1428427.62 .3703732 .0065050
+ 1428662.25 .3610659 .0063522
+ 1428897.00 .3633764 .0064061
+ 1429131.62 .3682952 .0064524
+ 1429366.50 .3689851 .0064814
+ 1429601.12 .3736066 .0065928
+ 1429836.12 .3792557 .0066240
+ 1430071.12 .3809364 .0067292
+ 1430306.00 .3769417 .0065438
+ 1430541.12 .3680219 .0064582
+ 1430776.12 .3731036 .0065759
+ 1431011.38 .3785936 .0066108
+ 1431246.50 .3767185 .0066091
+ 1431481.88 .3723717 .0065426
+ 1431717.25 .3769975 .0065867
+ 1431952.62 .3795277 .0065945
+ 1432188.12 .3816217 .0067033
+ 1432423.50 .3885296 .0067865
+ 1432659.12 .3656819 .0064227
+ 1432894.62 .3767913 .0065629
+ 1433130.50 .3938635 .0068135
+ 1433366.25 .3801545 .0066533
+ 1433602.00 .3885725 .0067480
+ 1433838.00 .3933766 .0068501
+ 1434073.75 .3759039 .0065565
+ 1434309.88 .3726876 .0065210
+ 1434545.75 .3747097 .0064487
+ 1434781.88 .3746116 .0064973
+ 1435018.12 .3744983 .0064310
+ 1435254.25 .3889534 .0067389
+ 1435490.62 .3883558 .0067786
+ 1435726.88 .3831634 .0066519
+ 1435963.25 .3768734 .0065478
+ 1436199.62 .3855008 .0067436
+ 1436436.25 .3829353 .0066339
+ 1436672.88 .3957975 .0068722
+ 1436909.38 .3855656 .0066412
+ 1437146.12 .3929911 .0068186
+ 1437382.75 .3996876 .0069261
+ 1437619.62 .3837287 .0066899
+ 1437856.62 .3893928 .0067456
+ 1438093.38 .3765491 .0065742
+ 1438330.50 .3933329 .0067473
+ 1438567.38 .3945889 .0068183
+ 1438804.50 .3865823 .0066657
+ 1439041.62 .3752772 .0065182
+ 1439278.88 .3918162 .0068442
+ 1439516.25 .3841573 .0066551
+ 1439753.50 .3834710 .0066523
+ 1439990.88 .3912514 .0067903
+ 1440228.25 .3929071 .0068546
+ 1440465.88 .3900946 .0067963
+ 1440703.25 .4053816 .0070475
+ 1440941.00 .3900053 .0067785
+ 1441178.75 .3945776 .0068640
+ 1441416.38 .3886123 .0067617
+ 1441654.25 .3988509 .0068952
+ 1441892.00 .3973557 .0068363
+ 1442130.00 .3885853 .0067325
+ 1442367.88 .4018418 .0069231
+ 1442606.00 .3967212 .0068522
+ 1442844.12 .3959396 .0068160
+ 1443082.12 .3873293 .0067620
+ 1443320.50 .3979703 .0068665
+ 1443558.62 .3992776 .0069542
+ 1443797.00 .4038621 .0070605
+ 1444035.25 .3889816 .0067419
+ 1444273.88 .4040777 .0070146
+ 1444512.50 .3907016 .0067955
+ 1444750.88 .4005942 .0069624
+ 1444989.62 .3964022 .0068632
+ 1445228.12 .3958658 .0067888
+ 1445467.00 .3909017 .0066553
+ 1445705.88 .3957918 .0067855
+ 1445944.62 .3891871 .0066551
+ 1446183.62 .3983747 .0068161
+ 1446422.50 .3896352 .0066613
+ 1446661.62 .4096974 .0070304
+ 1446900.62 .4018252 .0068609
+ 1447139.88 .4037520 .0069065
+ 1447379.12 .4164838 .0071269
+ 1447618.25 .4010962 .0068739
+ 1447857.75 .4012946 .0068720
+ 1448097.00 .3935718 .0067511
+ 1448336.50 .4040249 .0069708
+ 1448575.88 .3960021 .0068488
+ 1448815.62 .3997788 .0069503
+ 1449055.25 .4070544 .0070116
+ 1449294.88 .4094172 .0069837
+ 1449534.75 .3915700 .0067672
+ 1449774.38 .3981161 .0068490
+ 1450014.38 .4016485 .0069221
+ 1450254.12 .4073880 .0070088
+ 1450494.25 .3991658 .0068575
+ 1450734.38 .4000625 .0068455
+ 1450974.38 .3988178 .0068629
+ 1451214.62 .4234115 .0072066
+ 1451454.75 .4058197 .0068904
+ 1451695.12 .3949249 .0067897
+ 1451935.50 .3934413 .0067800
+ 1452175.88 .3994741 .0068435
+ 1452416.38 .4029495 .0068960
+ 1452656.75 .4005744 .0068572
+ 1452897.50 .4067445 .0069604
+ 1453138.00 .4085151 .0069729
+ 1453378.75 .4111921 .0069993
+ 1453619.62 .4044648 .0068569
+ 1453860.38 .4020950 .0069174
+ 1454101.38 .4029578 .0068612
+ 1454342.12 .3970455 .0067835
+ 1454583.25 .4120610 .0070219
+ 1454824.12 .4085059 .0069661
+ 1455065.38 .4072476 .0069302
+ 1455306.62 .4201139 .0071684
+ 1455547.75 .4164245 .0071594
+ 1455789.25 .4037220 .0069269
+ 1456030.38 .3948496 .0067643
+ 1456272.00 .4026856 .0069019
+ 1456513.25 .4185028 .0071534
+ 1456755.00 .4017287 .0068407
+ 1456996.62 .4146519 .0070494
+ 1457238.25 .3968250 .0068295
+ 1457480.00 .3969982 .0068115
+ 1457721.62 .4045222 .0070145
+ 1457963.62 .3978365 .0068127
+ 1458205.38 .4078521 .0069700
+ 1458447.50 .4079802 .0070003
+ 1458689.62 .4165246 .0071241
+ 1458931.50 .3990302 .0068824
+ 1459173.75 .4112701 .0070374
+ 1459415.88 .3966293 .0068741
+ 1459658.25 .3996002 .0068912
+ 1459900.62 .4074770 .0069857
+ 1460142.88 .3961219 .0068174
+ 1460385.50 .4060582 .0069843
+ 1460627.88 .3993846 .0068770
+ 1460870.50 .4035258 .0069801
+ 1461113.00 .4050843 .0069532
+ 1461355.75 .4030424 .0068753
+ 1461598.62 .4058258 .0069929
+ 1461841.38 .4178865 .0071669
+ 1462084.25 .4015588 .0068979
+ 1462327.12 .4107325 .0070974
+ 1462570.12 .3993792 .0068600
+ 1462813.12 .4118872 .0071133
+ 1463056.38 .3941768 .0067712
+ 1463299.62 .4018957 .0068796
+ 1463542.75 .3930694 .0067555
+ 1463786.12 .4016080 .0068660
+ 1464029.38 .4028400 .0070100
+ 1464272.88 .3979417 .0069287
+ 1464516.12 .4111069 .0070841
+ 1464759.88 .3988862 .0069674
+ 1465003.50 .3984409 .0068946
+ 1465247.00 .3887881 .0067549
+ 1465490.88 .4030283 .0069927
+ 1465734.50 .4043442 .0069265
+ 1465978.50 .3852375 .0066859
+ 1466222.25 .3925656 .0067679
+ 1466466.25 .4079532 .0069841
+ 1466710.38 .3949363 .0067614
+ 1466954.38 .3934091 .0067294
+ 1467198.62 .4097660 .0070288
+ 1467442.75 .4130280 .0070520
+ 1467687.12 .3969130 .0068368
+ 1467931.50 .4074847 .0070126
+ 1468175.75 .3985284 .0068139
+ 1468420.38 .3900076 .0067288
+ 1468664.75 .3898380 .0067688
+ 1468909.38 .4044197 .0069268
+ 1469153.88 .4022098 .0069558
+ 1469398.62 .3864261 .0066643
+ 1469643.50 .3982885 .0069031
+ 1469888.25 .3835636 .0066034
+ 1470133.25 .3929323 .0067954
+ 1470378.00 .3847612 .0067442
+ 1470623.12 .3797563 .0066375
+ 1470868.00 .3825788 .0066525
+ 1471113.25 .3775269 .0066186
+ 1471358.62 .3794939 .0066518
+ 1471603.75 .3962999 .0068777
+ 1471849.12 .3845376 .0066859
+ 1472094.38 .3955760 .0068849
+ 1472339.88 .3757069 .0065361
+ 1472585.25 .3788940 .0066472
+ 1472830.88 .3764093 .0065853
+ 1473076.62 .3712619 .0064985
+ 1473322.12 .3739347 .0065489
+ 1473568.00 .3812275 .0066426
+ 1473813.62 .3798230 .0065934
+ 1474059.62 .3509128 .0061730
+ 1474305.62 .3689339 .0065013
+ 1474551.50 .3634896 .0064097
+ 1474797.62 .3662941 .0064730
+ 1475043.62 .3581035 .0063223
+ 1475289.88 .3376634 .0060822
+ 1475536.00 .3372626 .0061280
+ 1475782.38 .3286465 .0059350
+ 1476028.88 .3400483 .0061680
+ 1476275.12 .3193874 .0059119
+ 1476521.75 .3072117 .0057074
+ 1476768.12 .3047314 .0057244
+ 1477014.88 .2943761 .0056074
+ 1477261.38 .2761730 .0053569
+ 1477508.25 .2611206 .0051286
+ 1477755.12 .2313912 .0047485
+ 1478001.88 .2278316 .0047292
+ 1478248.88 .1981442 .0043209
+ 1478495.62 .1958128 .0042744
+ 1478742.88 .1737533 .0039788
+ 1478989.75 .1666333 .0038862
+ 1479237.00 .1552947 .0037179
+ 1479484.38 .1451907 .0035563
+ 1479731.50 .1384672 .0034516
+ 1479979.00 .1368307 .0034613
+ 1480226.25 .1376354 .0034498
+ 1480473.88 .1458353 .0035865
+ 1480721.25 .1482472 .0036050
+ 1480968.88 .1635277 .0038320
+ 1481216.62 .1792077 .0040533
+ 1481464.25 .2019590 .0043922
+ 1481712.12 .2189287 .0045811
+ 1481959.88 .2323267 .0047725
+ 1482207.88 .2482720 .0050206
+ 1482456.00 .2669366 .0052226
+ 1482703.88 .2882237 .0055030
+ 1482952.00 .3074389 .0057760
+ 1483200.00 .3120975 .0058041
+ 1483448.38 .3400648 .0062169
+ 1483696.50 .3394532 .0061745
+ 1483945.00 .3420107 .0062224
+ 1484193.50 .3434100 .0061582
+ 1484441.75 .3505130 .0062503
+ 1484690.50 .3654730 .0063946
+ 1484938.88 .3760650 .0065623
+ 1485187.62 .3668755 .0064287
+ 1485436.25 .3667184 .0064122
+ 1485685.12 .3924616 .0067789
+ 1485934.12 .3739752 .0065218
+ 1486182.88 .3910501 .0067569
+ 1486431.88 .3757260 .0065413
+ 1486680.75 .3896747 .0067375
+ 1486930.00 .3845225 .0066596
+ 1487179.00 .3932718 .0068324
+ 1487428.38 .3973344 .0068232
+ 1487677.75 .4109178 .0070605
+ 1487926.88 .4167333 .0071651
+ 1488176.50 .4057648 .0069800
+ 1488425.75 .3899204 .0067614
+ 1488675.38 .4070107 .0070058
+ 1488924.88 .4143205 .0070792
+ 1489174.62 .3959424 .0067767
+ 1489424.50 .4011718 .0069195
+ 1489674.12 .4066733 .0069595
+ 1489924.00 .4093643 .0070381
+ 1490173.88 .4099832 .0069508
+ 1490423.88 .4158584 .0070885
+ 1490674.00 .4302504 .0073140
+ 1490924.00 .4138713 .0070465
+ 1491174.25 .4137554 .0070778
+ 1491424.38 .4219463 .0070890
+ 1491674.75 .4170621 .0071001
+ 1491925.00 .4180320 .0071122
+ 1492175.50 .4094897 .0069111
+ 1492426.12 .4229498 .0071006
+ 1492676.50 .4144383 .0070320
+ 1492927.12 .4151071 .0070338
+ 1493177.75 .4145017 .0070523
+ 1493428.50 .4310950 .0072754
+ 1493679.25 .4257630 .0072508
+ 1493930.12 .4290206 .0073088
+ 1494181.12 .4240445 .0071961
+ 1494432.00 .4397055 .0074753
+ 1494683.12 .4235758 .0072094
+ 1494934.12 .4167269 .0071143
+ 1495185.38 .4094998 .0070866
+ 1495436.50 .4230759 .0071774
+ 1495687.88 .4223504 .0071733
+ 1495939.38 .4165587 .0071011
+ 1496190.62 .4056055 .0069101
+ 1496442.25 .4235567 .0071843
+ 1496693.62 .4060258 .0069217
+ 1496945.38 .4107906 .0069591
+ 1497197.00 .4163999 .0071275
+ 1497448.75 .4256083 .0072720
+ 1497700.75 .4153509 .0070306
+ 1497952.38 .4210123 .0071609
+ 1498204.50 .4026871 .0068491
+ 1498456.38 .4322550 .0073256
+ 1498708.50 .4216026 .0071640
+ 1498960.75 .4133988 .0070119
+ 1499212.75 .4179015 .0070638
+ 1499465.12 .4183573 .0070826
+ 1499717.38 .4166270 .0070012
+ 1499969.75 .4119022 .0070192
+ 1500222.12 .4266998 .0071669
+ 1500474.75 .4235068 .0071406
+ 1500727.38 .4236647 .0071627
+ 1500979.88 .4256815 .0072063
+ 1501232.75 .4345653 .0073452
+ 1501485.38 .4326573 .0073224
+ 1501738.25 .4209043 .0071514
+ 1501991.00 .4359120 .0073856
+ 1502244.00 .4335812 .0072917
+ 1502497.12 .4241717 .0071689
+ 1502750.12 .4150553 .0070559
+ 1503003.38 .4167499 .0071311
+ 1503256.50 .4095898 .0070281
+ 1503509.88 .4157687 .0070801
+ 1503763.00 .4321361 .0072991
+ 1504016.50 .4165694 .0070643
+ 1504270.12 .4102508 .0069870
+ 1504523.50 .4139771 .0070409
+ 1504777.25 .4186132 .0070317
+ 1505030.75 .4145611 .0070999
+ 1505284.50 .4317890 .0072747
+ 1505538.50 .4279582 .0072681
+ 1505792.12 .4264169 .0072412
+ 1506046.12 .4149344 .0070203
+ 1506300.00 .4250289 .0072181
+ 1506554.12 .4247052 .0072761
+ 1506808.12 .4424974 .0075579
+ 1507062.38 .4188598 .0071467
+ 1507316.75 .4075389 .0069960
+ 1507570.88 .4254397 .0072926
+ 1507825.38 .4331396 .0073577
+ 1508079.75 .4413551 .0074958
+ 1508334.25 .4190872 .0071454
+ 1508588.75 .4236348 .0071895
+ 1508843.50 .4261611 .0073113
+ 1509098.25 .4455759 .0075948
+ 1509352.88 .4261206 .0072088
+ 1509607.75 .4261567 .0072951
+ 1509862.50 .4033910 .0068860
+ 1510117.62 .4287958 .0072744
+ 1510372.50 .4172352 .0070947
+ 1510627.62 .4107497 .0070865
+ 1510882.88 .4122971 .0070952
+ 1511137.88 .4206909 .0072004
+ 1511393.25 .3919695 .0068436
+ 1511648.50 .3923771 .0068341
+ 1511904.00 .3585597 .0064352
+ 1512159.38 .3639012 .0064637
+ 1512415.00 .3583778 .0064014
+ 1512670.62 .3893745 .0068375
+ 1512926.25 .3888751 .0068181
+ 1513182.00 .4071379 .0069932
+ 1513437.62 .4085926 .0069912
+ 1513693.62 .4243453 .0072392
+ 1513949.62 .4184738 .0071601
+ 1514205.50 .4336997 .0073144
+ 1514461.62 .4227280 .0072303
+ 1514717.62 .4252342 .0072248
+ 1514973.88 .4127665 .0070756
+ 1515230.00 .4224977 .0072121
+ 1515486.38 .4313365 .0073007
+ 1515742.88 .4203680 .0071066
+ 1515999.25 .4164535 .0070691
+ 1516255.88 .4238075 .0071859
+ 1516512.25 .4238727 .0072077
+ 1516769.00 .4104435 .0070258
+ 1517025.50 .4275896 .0072867
+ 1517282.38 .4230883 .0072402
+ 1517539.38 .4133158 .0070651
+ 1517796.12 .4067119 .0070168
+ 1518053.12 .4121523 .0071376
+ 1518310.12 .4172460 .0071592
+ 1518567.25 .4127876 .0070555
+ 1518824.25 .4117326 .0070719
+ 1519081.62 .4123641 .0070795
+ 1519339.00 .4119630 .0070896
+ 1519596.25 .4069290 .0069932
+ 1519853.75 .4184532 .0071542
+ 1520111.12 .4011299 .0069377
+ 1520368.75 .4188285 .0071522
+ 1520626.25 .4194372 .0071880
+ 1520884.00 .4194529 .0071969
+ 1521141.88 .4251426 .0073182
+ 1521399.50 .4155180 .0071381
+ 1521657.50 .4044729 .0069765
+ 1521915.38 .4053920 .0070371
+ 1522173.38 .4159691 .0071697
+ 1522431.62 .3972714 .0068826
+ 1522689.62 .4072638 .0070506
+ 1522947.88 .4129448 .0071561
+ 1523206.00 .4030850 .0070051
+ 1523464.50 .4001361 .0070294
+ 1523722.75 .3936426 .0069938
+ 1523981.38 .3916823 .0070483
+ 1524240.00 .3939984 .0070710
+ 1524498.50 .4009658 .0072132
+ 1524757.25 .4005291 .0072717
+ 1525015.75 .3684607 .0067298
+ 1525274.75 .3788972 .0069716
+ 1525533.38 .3555055 .0066098
+ 1525792.50 .3457204 .0064629
+ 1526051.62 .3421377 .0064614
+ 1526310.50 .3212388 .0061407
+ 1526569.75 .3113261 .0060477
+ 1526828.75 .2762130 .0055338
+ 1527088.12 .2664835 .0054338
+ 1527347.38 .2390434 .0049720
+ 1527606.88 .2245477 .0048197
+ 1527866.38 .1930085 .0044060
+ 1528125.75 .1745639 .0040786
+ 1528385.50 .1660101 .0039973
+ 1528645.00 .1601958 .0038849
+ 1528904.88 .1652932 .0040201
+ 1529164.75 .1674237 .0040134
+ 1529424.50 .1828874 .0041727
+ 1529684.50 .2032735 .0045134
+ 1529944.38 .2129477 .0045990
+ 1530204.50 .2404305 .0050220
+ 1530464.50 .2522865 .0050929
+ 1530724.75 .2813427 .0055181
+ 1530985.12 .3040274 .0058518
+ 1531245.25 .3008116 .0057145
+ 1531505.75 .3109114 .0058888
+ 1531766.12 .3328920 .0062269
+ 1532026.75 .3463004 .0063369
+ 1532287.12 .3425815 .0063320
+ 1532547.88 .3449199 .0063525
+ 1532808.75 .3514979 .0063733
+ 1533069.38 .3637591 .0065367
+ 1533330.38 .3681827 .0066521
+ 1533591.12 .3723179 .0066801
+ 1533852.25 .3705945 .0066649
+ 1534113.12 .3758248 .0066893
+ 1534374.38 .3900290 .0069280
+ 1534635.62 .3925175 .0069153
+ 1534896.75 .4031173 .0071784
+ 1535158.25 .3957543 .0069396
+ 1535419.50 .4035270 .0071057
+ 1535681.00 .3958066 .0069656
+ 1535942.38 .4085377 .0072121
+ 1536204.12 .4077047 .0071714
+ 1536465.88 .4070950 .0071501
+ 1536727.38 .4261338 .0074647
+ 1536989.38 .4159900 .0073825
+ 1537251.00 .4087160 .0073041
+ 1537513.00 .4160975 .0073788
+ 1537775.12 .4107888 .0073179
+ 1538037.12 .4228086 .0075304
+ 1538299.25 .4246119 .0074884
+ 1538561.38 .4152699 .0073262
+ 1538823.75 .4285423 .0075332
+ 1539085.88 .4152054 .0072028
+ 1539348.38 .4093657 .0070970
+ 1539611.00 .4227431 .0073168
+ 1539873.38 .4192659 .0072618
+ 1540136.00 .4129325 .0071265
+ 1540398.50 .4285928 .0073167
+ 1540661.38 .4253916 .0072973
+ 1540924.00 .4297231 .0073598
+ 1541187.00 .4162371 .0071513
+ 1541450.00 .4221722 .0072244
+ 1541712.88 .4363008 .0075188
+ 1541976.12 .4333005 .0074279
+ 1542239.12 .4343691 .0074369
+ 1542502.38 .4124639 .0071442
+ 1542765.50 .4286617 .0073898
+ 1543028.88 .4432412 .0076377
+ 1543292.50 .4283615 .0074353
+ 1543555.75 .4260932 .0073647
+ 1543819.38 .4299034 .0074304
+ 1544082.88 .4402598 .0075286
+ 1544346.62 .4302457 .0073813
+ 1544610.25 .4247384 .0073612
+ 1544874.12 .4397336 .0075798
+ 1545138.12 .4414876 .0076392
+ 1545402.00 .4367205 .0075161
+ 1545666.12 .4313749 .0074676
+ 1545930.00 .4253988 .0073155
+ 1546194.25 .4293418 .0073920
+ 1546458.62 .4212375 .0072155
+ 1546722.75 .4424221 .0076264
+ 1546987.12 .4232152 .0073071
+ 1547251.50 .4452294 .0076950
+ 1547516.00 .4325043 .0074849
+ 1547780.50 .4447201 .0076494
+ 1548045.12 .4476921 .0076699
+ 1548310.00 .4426529 .0075544
+ 1548574.62 .4402984 .0075768
+ 1548839.50 .4451743 .0076314
+ 1549104.25 .4305647 .0073513
+ 1549369.38 .4463341 .0075851
+ 1549634.25 .4347160 .0073757
+ 1549899.38 .4361391 .0074240
+ 1550164.62 .4414311 .0075630
+ 1550429.75 .4350401 .0074179
+ 1550695.12 .4365030 .0074575
+ 1550960.38 .4291389 .0072986
+ 1551226.00 .4317172 .0073524
+ 1551491.38 .4269140 .0072504
+ 1551757.00 .4293640 .0072990
+ 1552022.75 .4402952 .0074539
+ 1552288.25 .4359526 .0074343
+ 1552554.25 .4468811 .0075730
+ 1552819.88 .4243071 .0072131
+ 1553085.88 .4425341 .0075160
+ 1553352.00 .4310401 .0073581
+ 1553617.88 .4365014 .0073930
+ 1553884.12 .4351698 .0074336
+ 1554150.25 .4384064 .0074758
+ 1554416.50 .4308043 .0072852
+ 1554682.75 .4296492 .0073152
+ 1554949.25 .4312509 .0073379
+ 1555215.88 .4273837 .0072474
+ 1555482.25 .4396632 .0075000
+ 1555748.88 .4340130 .0073570
+ 1556015.38 .4374551 .0074065
+ 1556282.25 .4366663 .0074828
+ 1556548.88 .4498796 .0076169
+ 1556815.88 .4547979 .0076904
+ 1557083.00 .4383941 .0074155
+ 1557349.88 .4516789 .0077147
+ 1557617.00 .4482064 .0075592
+ 1557884.00 .4286213 .0073026
+ 1558151.38 .4292710 .0073227
+ 1558418.50 .4524151 .0077079
+ 1558686.00 .4289218 .0072574
+ 1558953.50 .4327885 .0073825
+ 1559220.88 .4351848 .0075077
+ 1559488.50 .4422785 .0075454
+ 1559756.00 .4304477 .0073600
+ 1560023.75 .4211686 .0072357
+ 1560291.38 .4414130 .0075114
+ 1560559.38 .4459286 .0076205
+ 1560827.38 .4497359 .0076675
+ 1561095.25 .4424615 .0075718
+ 1561363.38 .4420421 .0075132
+ 1561631.38 .4383028 .0074999
+ 1561899.62 .4317986 .0073590
+ 1562168.00 .4359924 .0073910
+ 1562436.12 .4471135 .0076256
+ 1562704.62 .4435468 .0075742
+ 1562973.00 .4296962 .0073059
+ 1563241.62 .4467934 .0076335
+ 1563510.12 .4397455 .0075073
+ 1563778.88 .4257817 .0073235
+ 1564047.75 .4273579 .0073620
+ 1564316.38 .4381306 .0075259
+ 1564585.38 .4428620 .0076074
+ 1564854.12 .4407788 .0075225
+ 1565123.25 .4358842 .0074728
+ 1565392.25 .4446307 .0075328
+ 1565661.50 .4429160 .0075624
+ 1565930.88 .4292946 .0073936
+ 1566200.00 .4435028 .0076042
+ 1566469.38 .4360431 .0074976
+ 1566738.75 .4235369 .0073012
+ 1567008.38 .4511050 .0078042
+ 1567277.75 .4250701 .0073421
+ 1567547.50 .4320081 .0074617
+ 1567817.38 .4372887 .0075575
+ 1568087.00 .4319907 .0074051
+ 1568356.88 .4386817 .0075848
+ 1568626.75 .4175040 .0072837
+ 1568896.75 .4252425 .0073476
+ 1569166.75 .4295864 .0074232
+ 1569437.00 .4188192 .0072767
+ 1569707.25 .4323823 .0074683
+ 1569977.38 .4453473 .0077198
+ 1570247.88 .4366027 .0076064
+ 1570518.12 .4393416 .0076123
+ 1570788.62 .4324331 .0075785
+ 1571059.38 .4546753 .0079366
+ 1571329.75 .4366073 .0075796
+ 1571600.62 .4314539 .0074842
+ 1571871.25 .4202309 .0073244
+ 1572142.12 .4277611 .0073472
+ 1572412.88 .4395949 .0075750
+ 1572684.00 .4244448 .0072783
+ 1572955.12 .4349443 .0074583
+ 1573226.12 .4346042 .0074759
+ 1573497.38 .4241247 .0072397
+ 1573768.50 .4339503 .0074408
+ 1574039.88 .4290386 .0073757
+ 1574311.12 .4185330 .0072296
+ 1574582.75 .4305303 .0073904
+ 1574854.38 .4386606 .0075124
+ 1575125.75 .4283386 .0073977
+ 1575397.62 .4287722 .0073840
+ 1575669.12 .4193784 .0072535
+ 1575941.12 .4471791 .0076139
+ 1576212.88 .4356246 .0074921
+ 1576484.88 .4181277 .0071931
+ 1576757.00 .4376589 .0074734
+ 1577029.00 .4286629 .0073516
+ 1577301.25 .4301062 .0073904
+ 1577573.38 .4066027 .0070815
+ 1577845.75 .4076142 .0070800
+ 1578118.00 .4034337 .0069716
+ 1578390.50 .3927152 .0068751
+ 1578663.12 .3787101 .0066969
+ 1578935.62 .3739103 .0067276
+ 1579208.38 .3361260 .0062026
+ 1579481.00 .2976262 .0056300
+ 1579753.88 .2874422 .0055948
+ 1580026.88 .2445308 .0050606
+ 1580299.62 .2209271 .0046867
+ 1580572.75 .2128396 .0045724
+ 1580845.62 .2297938 .0048354
+ 1581119.00 .2548114 .0052106
+ 1581392.00 .2969128 .0058467
+ 1581665.38 .3214506 .0060544
+ 1581938.88 .3627909 .0066649
+ 1582212.25 .3594747 .0065437
+ 1582485.75 .3873998 .0069367
+ 1582759.25 .3881871 .0069059
+ 1583033.00 .3946825 .0069568
+ 1583306.62 .4008925 .0070225
+ 1583580.50 .3948344 .0069918
+ 1583854.50 .4080421 .0071334
+ 1584128.25 .4063846 .0071423
+ 1584402.38 .4136905 .0072788
+ 1584676.25 .4076342 .0071917
+ 1584950.50 .4211065 .0074145
+ 1585224.62 .4148231 .0073747
+ 1585499.00 .4054677 .0072480
+ 1585773.50 .4010823 .0072479
+ 1586047.75 .4000262 .0072376
+ 1586322.38 .4075744 .0073238
+ 1586596.75 .3989511 .0072417
+ 1586871.50 .4064569 .0073951
+ 1587146.38 .3963282 .0072292
+ 1587421.00 .4053421 .0073599
+ 1587696.00 .4020992 .0073119
+ 1587970.75 .4093164 .0073309
+ 1588245.88 .3769788 .0068159
+ 1588520.88 .4006622 .0072200
+ 1588796.12 .3878395 .0070473
+ 1589071.38 .3744797 .0068121
+ 1589346.50 .3605842 .0066711
+ 1589622.00 .3576448 .0066058
+ 1589897.25 .3605688 .0066686
+ 1590172.88 .3463364 .0064654
+ 1590448.38 .3300551 .0062251
+ 1590724.12 .3306962 .0062629
+ 1590999.88 .3252026 .0061816
+ 1591275.62 .3125849 .0060654
+ 1591551.50 .3009706 .0058318
+ 1591827.38 .2840074 .0056060
+ 1592103.50 .2655759 .0053752
+ 1592379.38 .2752899 .0055520
+ 1592655.62 .2554472 .0052633
+ 1592932.00 .2330968 .0049258
+ 1593208.12 .2246898 .0048043
+ 1593484.62 .2132696 .0047256
+ 1593760.88 .2042487 .0045904
+ 1594037.50 .1858326 .0043162
+ 1594314.00 .1837949 .0043148
+ 1594590.75 .1699356 .0040527
+ 1594867.50 .1587297 .0039340
+ 1595144.25 .1537008 .0038673
+ 1595421.12 .1466833 .0038095
+ 1595698.00 .1448353 .0037308
+ 1595975.12 .1247274 .0034095
+ 1596252.25 .1170019 .0032883
+ 1596529.25 .1173303 .0032800
+ 1596806.62 .1214730 .0033760
+ 1597083.75 .1230995 .0033675
+ 1597361.25 .1227256 .0033585
+ 1597638.62 .1286575 .0034388
+ 1597916.25 .1343841 .0035624
+ 1598193.88 .1424208 .0037194
+ 1598471.50 .1385500 .0036148
+ 1598749.25 .1480883 .0037928
+ 1599027.00 .1479076 .0037622
+ 1599305.00 .1552928 .0038615
+ 1599582.75 .1613194 .0039557
+ 1599860.88 .1573592 .0039021
+ 1600139.12 .1706230 .0041174
+ 1600417.12 .1704087 .0040688
+ 1600695.50 .1760485 .0041384
+ 1600973.62 .1845911 .0043176
+ 1601252.12 .1920505 .0044377
+ 1601530.50 .1863294 .0043362
+ 1601809.12 .1847321 .0042445
+ 1602087.88 .1935369 .0043907
+ 1602366.38 .1954284 .0044338
+ 1602645.25 .2031448 .0045607
+ 1602923.88 .2095272 .0046220
+ 1603202.88 .2128039 .0046904
+ 1603481.75 .2086166 .0046166
+ 1603760.88 .2158536 .0047231
+ 1604040.12 .2244087 .0048350
+ 1604319.12 .2171944 .0046929
+ 1604598.62 .2231663 .0048143
+ 1604877.75 .2219632 .0047688
+ 1605157.25 .2212474 .0047601
+ 1605436.88 .2280343 .0049003
+ 1605716.25 .2341244 .0049411
+ 1605996.00 .2317442 .0049503
+ 1606275.62 .2371977 .0050474
+ 1606555.50 .2291847 .0048722
+ 1606835.12 .2364454 .0050283
+ 1607115.25 .2404515 .0050659
+ 1607395.25 .2447318 .0051332
+ 1607675.25 .2404402 .0050593
+ 1607955.50 .2453822 .0051353
+ 1608235.50 .2465649 .0052113
+ 1608516.00 .2424656 .0051234
+ 1608796.12 .2416467 .0050646
+ 1609076.75 .2515981 .0052550
+ 1609357.38 .2465640 .0051019
+ 1609637.75 .2477424 .0051769
+ 1609918.50 .2458856 .0051005
+ 1610199.12 .2615010 .0054112
+ 1610480.00 .2391573 .0050491
+ 1610760.75 .2408034 .0051279
+ 1611041.75 .2468592 .0051860
+ 1611323.00 .2433441 .0051301
+ 1611603.88 .2475592 .0051940
+ 1611885.12 .2492695 .0052095
+ 1612166.25 .2526580 .0052789
+ 1612447.75 .2450100 .0051005
+ 1612729.25 .2469570 .0051612
+ 1613010.50 .2446606 .0051315
+ 1613292.12 .2564227 .0053211
+ 1613573.62 .2459439 .0051512
+ 1613855.38 .2415069 .0051294
+ 1614137.00 .2513994 .0052671
+ 1614419.00 .2447942 .0051790
+ 1614701.00 .2439655 .0050966
+ 1614982.88 .2473489 .0052010
+ 1615265.00 .2419346 .0051406
+ 1615547.00 .2417839 .0051013
+ 1615829.25 .2437687 .0051828
+ 1616111.38 .2369315 .0050688
+ 1616393.88 .2449654 .0051840
+ 1616676.50 .2396743 .0050987
+ 1616958.75 .2367018 .0050615
+ 1617241.50 .2490966 .0052919
+ 1617524.00 .2353590 .0051177
+ 1617806.75 .2337144 .0050464
+ 1618089.50 .2290340 .0049453
+ 1618372.38 .2359046 .0050561
+ 1618655.50 .2380665 .0051479
+ 1618938.38 .2318991 .0050439
+ 1619221.62 .2271150 .0049507
+ 1619504.62 .2254613 .0049265
+ 1619788.00 .2251004 .0049083
+ 1620071.12 .2203036 .0048278
+ 1620354.62 .2196376 .0048434
+ 1620638.25 .2258370 .0049274
+ 1620921.62 .2268748 .0050173
+ 1621205.25 .2257311 .0049624
+ 1621488.88 .2148822 .0047756
+ 1621772.75 .2173784 .0047903
+ 1622056.62 .2190450 .0048753
+ 1622340.50 .2133324 .0048011
+ 1622624.50 .2093236 .0047677
+ 1622908.50 .1925785 .0044559
+ 1623192.75 .1973114 .0045644
+ 1623476.75 .1985977 .0045997
+ 1623761.12 .1962443 .0046167
+ 1624045.62 .2015202 .0046528
+ 1624329.88 .1996883 .0046714
+ 1624614.50 .2052645 .0047410
+ 1624899.00 .1943266 .0046377
+ 1625183.75 .1965448 .0046430
+ 1625468.38 .1930349 .0046571
+ 1625753.25 .1851572 .0044505
+ 1626038.25 .1890686 .0045262
+ 1626323.12 .1836205 .0044297
+ 1626608.25 .1869671 .0044603
+ 1626893.12 .1784320 .0043316
+ 1627178.50 .1774008 .0043183
+ 1627463.62 .1769585 .0043112
+ 1627749.00 .1716187 .0041916
+ 1628034.50 .1745257 .0042530
+ 1628319.88 .1643258 .0041096
+ 1628605.50 .1722822 .0042419
+ 1628891.00 .1639631 .0040995
+ 1629176.88 .1671872 .0041920
+ 1629462.50 .1567481 .0039719
+ 1629748.50 .1606507 .0040207
+ 1630034.50 .1580211 .0039725
+ 1630320.38 .1574653 .0039749
+ 1630606.62 .1539950 .0039159
+ 1630892.62 .1467675 .0038057
+ 1631179.00 .1497213 .0038328
+ 1631465.38 .1415547 .0036936
+ 1631751.62 .1472161 .0038113
+ 1632038.25 .1341708 .0035685
+ 1632324.62 .1370960 .0036400
+ 1632611.38 .1287753 .0034853
+ 1632897.88 .1368565 .0036084
+ 1633184.75 .1240301 .0033993
+ 1633471.75 .1312218 .0035638
+ 1633758.50 .1311956 .0034954
+ 1634045.62 .1267944 .0034342
+ 1634332.50 .1207990 .0033600
+ 1634619.75 .1258541 .0034462
+ 1634906.75 .1198109 .0033102
+ 1635194.25 .1165052 .0032927
+ 1635481.75 .1139827 .0032774
+ 1635769.00 .1169750 .0033181
+ 1636056.62 .1071689 .0031156
+ 1636344.12 .1070841 .0031572
+ 1636631.88 .1058077 .0031111
+ 1636919.50 .1048855 .0031093
+ 1637207.38 .1017739 .0030505
+ 1637495.50 .1007017 .0030644
+ 1637783.25 .0919384 .0028958
+ 1638071.38 .0928030 .0028940
+ 1638359.38 .0938349 .0028958
+ 1638647.75 .0983109 .0029878
+ 1638936.12 .0919963 .0028854
+ 1639224.38 .0918431 .0028585
+ 1639512.88 .0978416 .0030071
+ 1639801.25 .0956338 .0029347
+ 1640090.00 .0933695 .0028804
+ 1640378.50 .0964336 .0029526
+ 1640667.38 .0974703 .0029396
+ 1640956.25 .0955295 .0029528
+ 1641245.00 .1038043 .0030981
+ 1641534.12 .1107971 .0032031
+ 1641823.00 .1243686 .0033874
+ 1642112.25 .1365217 .0035947
+ 1642401.25 .1667757 .0041080
+ 1642690.62 .1942423 .0044475
+ 1642980.12 .2232255 .0048518
+ 1643269.38 .2687953 .0054156
+ 1643559.00 .3010773 .0059334
+ 1643848.50 .3376697 .0063928
+ 1644138.25 .3649256 .0067404
+ 1644427.75 .3690629 .0067652
+ 1644717.75 .3795538 .0069840
+ 1645007.75 .3513772 .0066214
+ 1645297.50 .3118414 .0060671
+ 1645587.75 .2667021 .0054176
+ 1645877.62 .2353297 .0050510
+ 1646168.00 .2079796 .0046461
+ 1646458.12 .1827394 .0043143
+ 1646748.50 .1633863 .0040462
+ 1647039.12 .1522723 .0038695
+ 1647329.50 .1420744 .0037186
+ 1647620.12 .1309159 .0035504
+ 1647910.62 .1172075 .0033296
+ 1648201.50 .1157848 .0033310
+ 1648492.38 .1110456 .0032405
+ 1648783.12 .1062137 .0031610
+ 1649074.25 .1069986 .0031649
+ 1649365.12 .1048876 .0031936
+ 1649656.38 .0936224 .0029523
+ 1649947.38 .1003728 .0030854
+ 1650238.75 .0990500 .0031169
+ 1650530.25 .0953236 .0030225
+ 1650821.50 .0936221 .0029922
+ 1651113.12 .1006197 .0031150
+ 1651404.62 .0913591 .0030092
+ 1651696.38 .0918224 .0029757
+ 1651988.00 .0983303 .0031218
+ 1652279.88 .1010909 .0031578
+ 1652571.88 .0912994 .0029766
+ 1652863.75 .0971241 .0030612
+ 1653155.88 .1014930 .0031439
+ 1653447.88 .0953356 .0030281
+ 1653740.12 .1027920 .0031525
+ 1654032.25 .0972266 .0030313
+ 1654324.75 .1025086 .0031184
+ 1654617.25 .0997323 .0030619
+ 1654909.62 .1057080 .0031319
+ 1655202.38 .1069447 .0031469
+ 1655494.88 .1073953 .0031857
+ 1655787.75 .1108541 .0032252
+ 1656080.38 .1144544 .0032965
+ 1656373.38 .1115387 .0032115
+ 1656666.50 .1190115 .0033460
+ 1656959.38 .1141921 .0032404
+ 1657252.62 .1210321 .0033626
+ 1657545.75 .1210146 .0033696
+ 1657839.12 .1230625 .0034097
+ 1658132.62 .1141294 .0032920
+ 1658425.88 .1104861 .0031900
+ 1658719.50 .1084550 .0031900
+ 1659013.00 .1017085 .0030482
+ 1659306.75 .0925251 .0029203
+ 1659600.38 .1031066 .0030897
+ 1659894.38 .1010806 .0030479
+ 1660188.38 .1102891 .0032481
+ 1660482.25 .1184134 .0033487
+ 1660776.38 .1186568 .0033472
+ 1661070.38 .1242184 .0034368
+ 1661364.75 .1329635 .0035725
+ 1661658.88 .1448708 .0037894
+ 1661953.38 .1374273 .0036318
+ 1662248.00 .1433167 .0037367
+ 1662542.38 .1488685 .0038307
+ 1662837.12 .1554831 .0039434
+ 1663131.62 .1632615 .0041142
+ 1663426.50 .1604056 .0040118
+ 1663721.25 .1524100 .0038526
+ 1664016.25 .1582669 .0039812
+ 1664311.38 .1504316 .0038436
+ 1664606.38 .1498362 .0038369
+ 1664901.62 .1501240 .0038703
+ 1665196.75 .1547824 .0038991
+ 1665492.12 .1514688 .0038411
+ 1665787.38 .1697379 .0041490
+ 1666083.00 .1695633 .0041433
+ 1666378.62 .1783708 .0042846
+ 1666674.12 .2021604 .0046491
+ 1666970.00 .1979508 .0045690
+ 1667265.62 .2001711 .0046084
+ 1667561.62 .2049714 .0046567
+ 1667857.75 .2098426 .0047718
+ 1668153.62 .2191163 .0048586
+ 1668449.75 .2238453 .0049994
+ 1668745.88 .2185293 .0048841
+ 1669042.25 .2197775 .0048528
+ 1669338.38 .2253288 .0049079
+ 1669635.00 .2297844 .0050117
+ 1669931.62 .2376200 .0052036
+ 1670228.00 .2385814 .0051182
+ 1670524.75 .2420082 .0051390
+ 1670821.38 .2413780 .0052030
+ 1671118.38 .2468059 .0052236
+ 1671415.12 .2590426 .0054566
+ 1671712.12 .2567426 .0053778
+ 1672009.38 .2518057 .0053402
+ 1672306.38 .2674808 .0055889
+ 1672603.62 .2597940 .0054064
+ 1672900.88 .2599327 .0054008
+ 1673198.38 .2668822 .0055275
+ 1673495.62 .2709908 .0055634
+ 1673793.25 .2762405 .0056941
+ 1674091.00 .2823812 .0057620
+ 1674388.50 .2760916 .0056380
+ 1674686.50 .2837125 .0057384
+ 1674984.12 .2738755 .0056014
+ 1675282.25 .2866090 .0058412
+ 1675580.38 .2772121 .0056367
+ 1675878.25 .2863157 .0058060
+ 1676176.50 .2943635 .0059195
+ 1676474.62 .2874698 .0057645
+ 1676773.12 .2950195 .0058552
+ 1677071.38 .3036912 .0060222
+ 1677370.00 .3135868 .0061789
+ 1677668.62 .3066929 .0060306
+ 1677967.12 .3060507 .0060052
+ 1678266.00 .3118407 .0061185
+ 1678564.62 .3179602 .0061978
+ 1678863.62 .3162408 .0062005
+ 1679162.50 .3249448 .0062508
+ 1679461.62 .3262157 .0063287
+ 1679760.88 .3228949 .0062052
+ 1680060.00 .3300270 .0063844
+ 1680359.38 .3285731 .0063414
+ 1680658.62 .3322830 .0063956
+ 1680958.12 .3301141 .0063255
+ 1681257.50 .3314371 .0063869
+ 1681557.25 .3390017 .0064772
+ 1681857.12 .3504632 .0066836
+ 1682156.62 .3352258 .0064247
+ 1682456.62 .3407038 .0065044
+ 1682756.38 .3480460 .0065894
+ 1683056.50 .3380537 .0064086
+ 1683356.50 .3359692 .0063867
+ 1683656.75 .3455501 .0065615
+ 1683957.12 .3449883 .0065274
+ 1684257.38 .3441867 .0065014
+ 1684557.88 .3539371 .0066727
+ 1684858.25 .3576661 .0067222
+ 1685158.88 .3562770 .0067288
+ 1685459.62 .3574412 .0067040
+ 1685760.25 .3610964 .0067337
+ 1686061.25 .3608413 .0067179
+ 1686361.88 .3486196 .0065488
+ 1686663.00 .3532769 .0065976
+ 1686963.88 .3548356 .0066394
+ 1687265.12 .3656785 .0068100
+ 1687566.50 .3578783 .0067410
+ 1687867.62 .3707122 .0068522
+ 1688169.12 .3603044 .0067342
+ 1688470.50 .3697623 .0068506
+ 1688772.12 .3727730 .0069925
+ 1689073.62 .3807619 .0070761
+ 1689375.38 .3843249 .0071592
+ 1689677.38 .4039298 .0074337
+ 1689979.00 .3800991 .0070147
+ 1690281.12 .3762249 .0069827
+ 1690583.00 .3898344 .0072207
+ 1690885.25 .3857416 .0070943
+ 1691187.25 .3757955 .0069356
+ 1691489.62 .4015337 .0073550
+ 1691792.12 .3983113 .0073096
+ 1692094.38 .3943795 .0072172
+ 1692397.00 .3912950 .0071127
+ 1692699.50 .3964432 .0072309
+ 1693002.25 .4019715 .0073305
+ 1693304.88 .4034958 .0073865
+ 1693607.75 .4103840 .0074456
+ 1693910.88 .4047949 .0073686
+ 1694213.75 .4110952 .0074233
+ 1694516.88 .4054680 .0073003
+ 1694819.88 .4050215 .0073328
+ 1695123.25 .4062293 .0072739
+ 1695426.75 .4155380 .0075087
+ 1695730.00 .4096360 .0073398
+ 1696033.62 .4163787 .0075263
+ 1696337.00 .4075120 .0072524
+ 1696640.75 .4133795 .0073971
+ 1696944.38 .4252568 .0075328
+ 1697248.25 .3986821 .0071318
+ 1697552.38 .4240431 .0076167
+ 1697856.12 .4247856 .0075877
+ 1698160.38 .4413037 .0079110
+ 1698464.25 .4483302 .0080277
+ 1698768.62 .4337448 .0077704
+ 1699072.75 .4316296 .0077259
+ 1699377.38 .4342795 .0076837
+ 1699681.88 .4206868 .0076074
+ 1699986.25 .4351506 .0076797
+ 1700291.12 .4401813 .0078232
+ 1700595.62 .4407906 .0078732
+ 1700900.50 .4231239 .0075241
+ 1701205.25 .4301974 .0075685
+ 1701510.38 .4291151 .0076246
+ 1701815.50 .4396459 .0077526
+ 1702120.50 .4361843 .0077350
+ 1702425.88 .4470066 .0079295
+ 1702731.00 .4582114 .0080820
+ 1703036.50 .4420292 .0078293
+ 1703342.00 .4514468 .0079998
+ 1703647.38 .4536083 .0079908
+ 1703953.12 .4451562 .0078770
+ 1704258.75 .4415270 .0078473
+ 1704564.62 .4568776 .0080150
+ 1704870.25 .4451142 .0079049
+ 1705176.38 .4425801 .0078942
+ 1705482.50 .4553502 .0080122
+ 1705788.50 .4728381 .0083180
+ 1706094.88 .4665086 .0081843
+ 1706400.88 .4502509 .0079642
+ 1706707.38 .4505802 .0079053
+ 1707013.75 .4590333 .0081032
+ 1707320.38 .4544305 .0079696
+ 1707627.12 .4550016 .0079729
+ 1707933.62 .4524086 .0079237
+ 1708240.50 .4578830 .0080000
+ 1708547.25 .4535002 .0079781
+ 1708854.25 .4610827 .0080779
+ 1709161.12 .4691848 .0081652
+ 1709468.38 .4580419 .0080573
+ 1709775.75 .4605791 .0080824
+ 1710082.75 .4609308 .0080376
+ 1710390.25 .4543814 .0079501
+ 1710697.50 .4473771 .0078844
+ 1711005.25 .4615167 .0080528
+ 1711312.62 .4594970 .0080711
+ 1711620.50 .4656813 .0082024
+ 1711928.38 .4617312 .0080498
+ 1712236.00 .4694880 .0082994
+ 1712544.12 .4514432 .0079611
+ 1712852.00 .4612498 .0081051
+ 1713160.25 .4556033 .0080260
+ 1713468.50 .4714700 .0082513
+ 1713776.62 .4489849 .0079279
+ 1714085.12 .4703193 .0082059
+ 1714393.38 .4751984 .0082906
+ 1714702.00 .4682661 .0081801
+ 1715010.50 .4668695 .0081857
+ 1715319.25 .4667661 .0081371
+ 1715628.12 .4760081 .0083507
+ 1715936.88 .4893246 .0084806
+ 1716245.88 .4726000 .0082338
+ 1716554.75 .4790709 .0082822
+ 1716864.00 .4776422 .0082888
+ 1717173.00 .4730585 .0081299
+ 1717482.38 .4627911 .0080431
+ 1717791.88 .4669743 .0081088
+ 1718101.12 .4656176 .0080733
+ 1718410.88 .4760137 .0081715
+ 1718720.25 .4873488 .0084119
+ 1719030.12 .4745753 .0082041
+ 1719339.75 .4767430 .0082779
+ 1719649.62 .4968466 .0085582
+ 1719959.75 .4925229 .0085571
+ 1720269.62 .4929174 .0085369
+ 1720579.88 .4641510 .0080966
+ 1720889.88 .4941915 .0085425
+ 1721200.25 .4969593 .0085090
+ 1721510.50 .4899251 .0085551
+ 1721821.00 .4908899 .0085376
+ 1722131.75 .5111976 .0088500
+ 1722442.12 .4874585 .0083965
+ 1722753.00 .4738309 .0081158
+ 1723063.62 .4850566 .0083519
+ 1723374.62 .4999251 .0086076
+ 1723685.62 .4888675 .0084141
+ 1723996.50 .4992384 .0086082
+ 1724307.75 .4904844 .0084935
+ 1724618.75 .4854070 .0083803
+ 1724930.25 .5036008 .0086157
+ 1725241.38 .4942382 .0084936
+ 1725553.00 .4983005 .0085406
+ 1725864.62 .4970881 .0085545
+ 1726176.12 .4895967 .0083571
+ 1726488.00 .4873155 .0083625
+ 1726799.62 .4865820 .0083909
+ 1727111.62 .5068036 .0086771
+ 1727423.38 .5018562 .0086479
+ 1727735.62 .5084673 .0087785
+ 1728047.88 .5137186 .0088281
+ 1728359.88 .4959975 .0085348
+ 1728672.25 .4935390 .0084747
+ 1728984.50 .4870213 .0083805
+ 1729297.12 .5005199 .0085901
+ 1729609.50 .4957561 .0085324
+ 1729922.25 .5098693 .0087452
+ 1730235.12 .5143912 .0088653
+ 1730547.75 .4934776 .0085336
+ 1730860.75 .5048768 .0086871
+ 1731173.62 .4870068 .0083816
+ 1731486.75 .4981296 .0086117
+ 1731799.75 .4980184 .0086909
+ 1732113.12 .4998889 .0085884
+ 1732426.62 .4967580 .0085902
+ 1732739.88 .5060326 .0087702
+ 1733053.50 .4930198 .0085628
+ 1733366.88 .5018422 .0086858
+ 1733680.62 .4978516 .0086169
+ 1733994.50 .5096815 .0088446
+ 1734308.25 .5057465 .0087704
+ 1734622.25 .5001494 .0086883
+ 1734936.12 .5066478 .0088146
+ 1735250.25 .5094218 .0087592
+ 1735564.25 .5093510 .0088768
+ 1735878.62 .5143827 .0089792
+ 1736193.12 .5011001 .0087744
+ 1736507.38 .5125086 .0089216
+ 1736822.00 .5168825 .0090706
+ 1737136.50 .5099875 .0089605
+ 1737451.25 .5034080 .0088549
+ 1737765.88 .5023661 .0088834
+ 1738080.88 .5193027 .0091696
+ 1738396.00 .4969071 .0087326
+ 1738710.88 .5163385 .0091382
+ 1739026.12 .5098103 .0089968
+ 1739341.12 .5016122 .0088109
+ 1739656.50 .5014602 .0088392
+ 1739971.75 .5066437 .0088497
+ 1740287.25 .4934242 .0086209
+ 1740603.00 .5002550 .0087722
+ 1740918.38 .5187470 .0090303
+ 1741234.25 .5025174 .0087732
+ 1741549.88 .4910786 .0085558
+ 1741865.88 .5122786 .0088881
+ 1742182.00 .5001939 .0086640
+ 1742497.88 .5166133 .0088687
+ 1742814.25 .5142272 .0088752
+ 1743130.25 .5129969 .0089458
+ 1743446.75 .5171431 .0089629
+ 1743762.88 .5230895 .0091643
+ 1744079.50 .5165271 .0089848
+ 1744396.25 .5064330 .0088387
+ 1744712.75 .5033473 .0088222
+ 1745029.62 .5160835 .0090935
+ 1745346.25 .5220810 .0090723
+ 1745663.38 .5237621 .0092593
+ 1745980.12 .5204344 .0091844
+ 1746297.38 .5057421 .0089971
+ 1746614.75 .5125656 .0091345
+ 1746931.88 .5315809 .0094438
+ 1747249.25 .5287656 .0094099
+ 1747566.62 .5253972 .0093027
+ 1747884.25 .5098653 .0090401
+ 1748201.62 .5317767 .0094426
+ 1748519.50 .5197117 .0091320
+ 1748837.38 .5297439 .0093146
+ 1749155.12 .5278210 .0093205
+ 1749473.25 .5207416 .0092522
+ 1749791.12 .5350689 .0095229
+ 1750109.38 .5209327 .0091825
+ 1750427.38 .5490022 .0097646
+ 1750745.88 .5198954 .0092000
+ 1751064.38 .5263582 .0094214
+ 1751382.62 .5241427 .0093371
+ 1751701.38 .5225435 .0092879
+ 1752019.88 .5315987 .0095279
+ 1752338.75 .5487382 .0098343
+ 1752657.75 .5296453 .0094608
+ 1752976.50 .5211567 .0092699
+ 1753295.62 .5121343 .0091289
+ 1753614.50 .5285943 .0094203
+ 1753933.75 .5351021 .0095672
+ 1754252.88 .5252289 .0094043
+ 1754572.38 .5462143 .0097070
+ 1754892.00 .5322729 .0094388
+ 1755211.25 .5213850 .0092865
+ 1755531.00 .5361273 .0095875
+ 1755850.62 .4967237 .0088604
+ 1756170.50 .5335590 .0095203
+ 1756490.25 .5350856 .0095351
+ 1756810.25 .5187123 .0091073
+ 1757130.50 .5372347 .0095376
+ 1757450.50 .5159677 .0092359
+ 1757770.88 .5373591 .0095671
+ 1758091.00 .5432065 .0096605
+ 1758411.50 .5277395 .0093036
+ 1758731.75 .5183386 .0091419
+ 1759052.50 .5185543 .0091768
+ 1759373.38 .5296340 .0094181
+ 1759693.88 .5144936 .0090605
+ 1760014.88 .5373628 .0094739
+ 1760335.62 .5334772 .0094066
+ 1760656.75 .5256894 .0092862
+ 1760977.75 .5188537 .0091561
+ 1761299.00 .5264409 .0093103
+ 1761620.50 .5128433 .0089951
+ 1761941.62 .5433225 .0095757
+ 1762263.25 .5146359 .0090472
+ 1762584.62 .5362737 .0094174
+ 1762906.38 .5312740 .0092754
+ 1763228.25 .5090762 .0089401
+ 1763549.88 .5279591 .0092729
+ 1763871.88 .5229509 .0091143
+ 1764193.75 .5394439 .0094591
+ 1764515.88 .5294424 .0091985
+ 1764837.88 .5266508 .0091684
+ 1765160.25 .5339891 .0092927
+ 1765482.75 .5381742 .0094573
+ 1765805.00 .5199754 .0090641
+ 1766127.62 .5340279 .0093461
+ 1766450.12 .5225329 .0091597
+ 1766772.88 .5211941 .0091219
+ 1767095.50 .5392234 .0093548
+ 1767418.50 .5362384 .0093096
+ 1767741.62 .5441371 .0094532
+ 1768064.50 .5241584 .0090938
+ 1768387.75 .5499396 .0095053
+ 1768710.75 .5292856 .0091959
+ 1769034.25 .5219365 .0090743
+ 1769357.50 .5235428 .0091321
+ 1769681.12 .5246154 .0091692
+ 1770004.75 .5342584 .0092656
+ 1770328.25 .5388586 .0093771
+ 1770652.12 .5269539 .0091106
+ 1770975.88 .5364740 .0093678
+ 1771299.88 .5377982 .0092879
+ 1771624.12 .5256097 .0091518
+ 1771948.00 .5449412 .0094558
+ 1772272.38 .5425562 .0094532
+ 1772596.50 .5314814 .0092220
+ 1772921.00 .5386248 .0093720
+ 1773245.25 .5457873 .0094403
+ 1773570.00 .5350593 .0093618
+ 1773894.75 .5465818 .0094948
+ 1774219.25 .5436954 .0094592
+ 1774544.25 .5451829 .0094383
+ 1774869.00 .5428854 .0094618
+ 1775194.12 .5451466 .0095279
+ 1775519.12 .5372227 .0093997
+ 1775844.38 .5464122 .0095804
+ 1776169.75 .5469157 .0094726
+ 1776495.00 .5556144 .0096496
+ 1776820.62 .5373439 .0093261
+ 1777145.88 .5186993 .0090454
+ 1777471.75 .5538616 .0096612
+ 1777797.25 .5542158 .0096583
+ 1778123.12 .5372878 .0093038
+ 1778449.25 .5493712 .0095744
+ 1778775.00 .5536183 .0096499
+ 1779101.25 .5432565 .0094145
+ 1779427.25 .5250925 .0091715
+ 1779753.62 .5415198 .0094487
+ 1780079.75 .5465597 .0095070
+ 1780406.38 .5411678 .0093857
+ 1780733.00 .5555714 .0096205
+ 1781059.50 .5407799 .0093934
+ 1781386.38 .5240045 .0091370
+ 1781713.00 .5289677 .0093198
+ 1782040.00 .5554199 .0096859
+ 1782367.12 .5402367 .0094757
+ 1782694.00 .5506404 .0096458
+ 1783021.25 .5425203 .0094030
+ 1783348.38 .5237544 .0091869
+ 1783675.75 .5124503 .0089925
+ 1784003.00 .5048749 .0089404
+ 1784330.75 .4870931 .0087956
+ 1784658.50 .4893511 .0088401
+ 1784986.00 .4595181 .0083225
+ 1785313.88 .4674001 .0084171
+ 1785641.62 .4822970 .0086703
+ 1785969.75 .4970185 .0088525
+ 1786297.62 .5227422 .0091769
+ 1786625.88 .5322254 .0092968
+ 1786954.25 .5346512 .0093173
+ 1787282.38 .5528857 .0095372
+ 1787611.00 .5404929 .0093479
+ 1787939.38 .5535725 .0095952
+ 1788268.00 .5471705 .0094351
+ 1788596.62 .5580106 .0096149
+ 1788925.50 .5425748 .0093765
+ 1789254.50 .5594342 .0096704
+ 1789583.25 .5465254 .0094191
+ 1789912.50 .5675124 .0099044
+ 1790241.50 .5597860 .0096007
+ 1790570.88 .5434111 .0092965
+ 1790900.00 .5474548 .0094564
+ 1791229.50 .5513710 .0095633
+ 1791559.25 .5608798 .0097650
+ 1791888.62 .5388343 .0093239
+ 1792218.50 .5597738 .0096549
+ 1792548.12 .5624799 .0096895
+ 1792878.12 .5383359 .0093695
+ 1793208.12 .5383343 .0093343
+ 1793538.00 .5434823 .0094591
+ 1793868.38 .5495958 .0094617
+ 1794198.38 .5322846 .0093010
+ 1794528.88 .5484467 .0095041
+ 1794859.12 .5498081 .0094793
+ 1795189.75 .5369043 .0092502
+ 1795520.50 .5368451 .0093595
+ 1795851.00 .5323152 .0091588
+ 1796182.00 .5334420 .0092467
+ 1796512.62 .5371031 .0092775
+ 1796843.75 .5376230 .0092792
+ 1797174.62 .5231650 .0091080
+ 1797506.00 .5267552 .0091744
+ 1797837.38 .5498957 .0094703
+ 1798168.50 .5294606 .0091664
+ 1798500.12 .5392026 .0094060
+ 1798831.38 .5358818 .0093329
+ 1799163.12 .5435079 .0094192
+ 1799494.75 .5367498 .0092242
+ 1799826.62 .5133699 .0089948
diff --git a/tests/data/ex012/ex012a.inp b/tests/data/ex012/ex012a.inp
new file mode 100755
index 0000000..9173991
--- /dev/null
+++ b/tests/data/ex012/ex012a.inp
@@ -0,0 +1,80 @@
+example ex012: multiple nuclides (Natural Si -- 200 m flight path)
+Si 27.976928 300000. 1800000.
+csisrs
+chi squared is wanted
+do not suppress any intermediate results
+generate odf file automatically
+
+ 300. 200.0000 0.182233 0.0 0.002518
+ 4.20000 0.347162
+TRANSMISSION
+ 1 1 1 0.5 0.9223 0.0 Si28 s1/2
+ 1 1 0 0 0.5 0.0 0.0
+ 2 1 0 2 1.5 0.0 1843140.0
+ 2 1 1 -0.5 0.9223 0.0 Si28 p1/2
+ 1 1 0 1 0.5 0.0 0.0
+ 2 1 0 1 0.5 0.0 1843140.0
+ 3 1 1 -1.5 0.9223 0.0 Si28 p3/2
+ 1 1 0 1 0.5 0.0 0.0
+ 2 1 0 1 0.5 0.0 1843140.0
+ 4 1 2 1.5 0.9223 0.0 Si28 d3/2
+ 1 1 0 2 0.5 0.0 0.0
+ 2 1 0 2 0.5 0.0 1843140.0
+ 3 1 0 0 1.5 0.0 1843140.0
+ 5 1 2 2.5 0.9223 0.0 Si28 d5/2
+ 1 1 0 2 0.5 0.0 0.0
+ 2 1 0 2 0.5 0.0 1843140.0
+ 3 1 0 0 2.5 0.0 1843140.0
+ 6 1 2 -2.5 0.9223 0.0 Si28 f5/2
+ 1 1 0 3 0.5 0.0 0.0
+ 2 1 0 3 0.5 0.0 1843140.0
+ 3 1 0 1 2.5 0.0 1843140.0
+ 7 1 2 -3.5 0.9223 0.0 Si28 f7/2
+ 1 1 0 3 0.5 0.0 0.0
+ 2 1 0 3 0.5 0.0 1843140.0
+ 3 1 0 1 2.5 0.0 1843140.0
+ 8 1 0 0.0 0.0467 0.5 Si29 s0s (el=0, J=0, singlet j=0)
+ 1 1 0 0 0.0 0.0 0.0
+ 9 1 0 1.0 0.0467 0.5 Si29 s1q (el=0, J=1, quartet j=1)
+ 1 1 0 0 1.0 0.0 0.0
+ 10 1 0 -1.0 0.0467 0.5 Si29 p1s
+ 1 1 0 1 0.0 0.0
+ 11 1 0 -0.0 0.0467 0.5 Si29 p0q
+ 1 1 0 1 1.0 0.0
+ 12 1 0 -1.0 0.0467 0.5 Si29 p1q
+ 1 1 0 1 1.0 0.0
+ 13 1 0 -2.0 0.0467 0.5 Si29 p2q
+ 1 1 0 1 1.0 0.0
+ 14 1 0 2.0 0.0467 0.5 Si29 d2s
+ 1 1 0 2 0.0 0.0
+ 15 1 0 1.0 0.0467 0.5 Si29 d1q
+ 1 1 0 2 1.0 0.0
+ 16 1 0 2.0 0.0467 0.5 Si29 d2q
+ 1 1 0 2 1.0 0.0
+ 17 1 0 3.0 0.0467 0.5 Si29 d3q
+ 1 1 0 2 1.0 0.0
+ 18 1 0 0.5 0.0310 0.0 Si30 s1/2
+ 1 1 0 0 0.5 0.0
+ 19 1 0 -0.5 0.0310 0.0 Si30 p1/2
+ 1 1 0 1 0.5 0.0
+ 20 1 0 -1.5 0.0310 0.0 Si30 p3/2
+ 1 1 0 1 0.5 0.0
+ 21 1 0 1.5 0.0310 0.0 Si30 d3/2
+ 1 1 0 2 0.5 0.0
+ 22 1 0 2.5 0.0310 0.0 Si30 d5/2
+ 1 1 0 2 0.5 0.0
+ 23 x 1 0 0.5 2.0 0.0 O s1/2
+ 1 1 0 0 0.5 0.0
+ 24 x 1 0 -0.5 2.0 0.0 O p1/2
+ 1 1 0 1 0.5 0.0
+ 25 x 1 0 -1.5 2.0 0.0 O p3/2
+ 1 1 0 1 0.5 0.0
+ 26 x 1 0 1.5 2.0 0.0 O d3/2
+ 1 1 0 2 0.5 0.0
+ 27 x 1 0 2.5 2.0 0.0 O d5/2
+ 1 1 0 2 0.5 0.0
+ 28 x 1 0 -2.5 2.0 0.0 O f5/2
+ 1 1 0 3 0.5 0.0
+ 29 x 1 0 -3.5 2.0 0.0 O f7/2
+ 1 1 0 3 0.5 0.0
+
diff --git a/tests/data/ex012/ex012a.par b/tests/data/ex012/ex012a.par
new file mode 100755
index 0000000..0c3fd15
--- /dev/null
+++ b/tests/data/ex012/ex012a.par
@@ -0,0 +1,176 @@
+-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1
+-8.7373E+05 1.0253E+03 1.0151E+02 0 0 1 1
+-3.6529E+05 1.0000E+03 3.0406E+01 0 0 0 1
+-6.3159E+04 1.0000E+03 4.6894E+01 0 0 0 1
+-4.8801E+04 1.0000E+03 9.2496E+00 0 0 0 1
+31739.99805 1.0000E+03 1.5667E+01 0 0 0 5
+55676.96094 1.5803E+03 6.5331E+05 0 0 0 1
+67732.84375 2.5000E+03 2.6589E+03 0 0 0 3
+70800.00781 1.0000E+03 2.9617E+01 0 0 0 5
+86797.35938 2.5000E+03 7.2618E+02 0 0 0 3
+181617.5000 5.6000E+03 3.4894E+07 0 0 0 1
+298700.0000 1.0000E+03 9.8860E+03 0 0 0 5
+301310.8125 3.6000E+03 2.3548E+03 0 0 0 1
+354588.6875 1.0000E+03 1.4460E+04 0 0 0 5
+399675.9375 6.6000E+02 8.1361E+02 0 0 0 3
+532659.8750 2.5000E+03 5.3281E+05 0 0 0 3
+565576.8750 2.9000E+03 1.0953E+07 0 0 0 3
+587165.7500 8.8000E+03 1.9916E+05 0 0 0 2
+590290.1250 3.6000E+03 5.2366E+05 0 0 0 1
+602467.3125 3.4000E+03 5.0491E+04 0 0 0 4
+714043.4375 2.5000E+03 1.2165E+03 0 0 0 3
+771711.9375 1.0000E+03 5.3139E+04 0 0 0 5
+812491.6250 9.7000E+03 3.0100E+07 0 0 0 3
+845233.8750 2.0000E+03 3.9791E+05 0 0 0 4
+872305.8125 1.3000E+03 3.2140E+04 0 0 0 5
+910043.5625 1.1300E+03 3.6733E+06 0 0 0 3
+962233.0000 1.6000E+04 7.6614E+07 0 0 0 2
+1017777.188 1.0000E+03 7.6192E+04 0 0 0 5
+1042856.812 1.0000E+03 9.3370E+05 0 0 0 5
+1085169.250 3.6000E+03 7.2794E+04 0 0 0 1
+1148103.625 1.0000E+03 3.1469E+03 0 0 0 5
+1162663.625 3.8000E+03 3.0136E+06 0 0 0 1
+1199501.375 7.6000E+03 1.4914E+07 0 0 0 2
+1201238.750 3.6000E+03 4.6012E+06 0 0 0 1
+1256447.250 3.6000E+03 1.7383E+07 0 0 0 1
+1264441.750 1.0000E+03 8.4364E+05 0 0 0 5
+1379920.250 2.4000E+03 6.5299E+04 0 0 0 4
+1408269.750 2.7000E+03 5.1983E+06 0 0 0 3
+1479927.250 1.6500E+03 3.5025E+06 0 0 0 4
+1482395.375 8.8000E+03 8.8694E+02 0 0 0 2
+1512343.875 1.0000E+03 9.1493E+04 0 0 0 5
+1528742.375 2.4000E+03 2.9225E+06 0 0 0 4
+1580564.875 2.4000E+03 1.4955E+06 0 0 0 4
+1592844.250 8.8000E+03 1.1199E+07 0 0 0 2
+1597168.625 2.4000E+03 4.0172E+06 0 0 0 4
+1639561.500 1.0000E+03 1.5293E+07 0 0 0 5
+1651146.000 1.0000E+03 2.1555E+07 0 0 0 5
+1658595.000 8.8000E+03 1.5553E+06 0 0 0 2
+1664961.125 2.4000E+03 2.1590E+05 0 0 0 4
+1784952.750 2.4000E+03 1.9294E+05 0 0 0 4
+1805652.625 2.5000E+03 1.2991E+06 0 0 0 3
+1850667.250 1.0000E+03 3.5515E+07 0 0 0 5
+1852435.250 2.5000E+03 7.0707E+07 0 0 0 3
+1923655.250 1.0000E+03 1.0171E+06 0 0 0 5
+2248678.250 3.6000E+03 4.4476E+08 0 0 0 1
+1968869.750 1.0000E+03 5.7341E+06 0 0 0 5
+3007280.500 3.6000E+03 2.8996E+05 0 0 0 1
+3067775.250 3.6000E+03 4.2229E+05 0 0 0 1
+-2.1796E+06 4.0908E+05 1.7222E+09 0 0 0 8
+-8.6024E+05 9.9997E+02 3.4170E+07 0 0 0 8
+-4.3128E+05 1.0059E+03 2.2851E+08 0 0 0 8
+15282.00000 1.6460E+03 1.0000E+04 0 0 0 10
+38819.00000 2.4000E+03 7.5926E+04 0 0 0 13
+159682.9688 1.9000E+03 1.2003E+06 0 0 0 10
+184456.4844 1.5000E+03 1.3674E+05 0 0 0 10
+336790.2812 8.0000E+02 2.5128E+06 0 0 0 10
+385764.1875 4.6700E+03 2.4133E+07 0 0 0 9
+552241.8125 5.7000E+03 1.2989E+06 0 0 0 13
+566558.4375 3.0000E+03 7.0820E+07 0 0 0 10
+619664.6250 3.0000E+03 7.2596E+05 0 0 0 13
+649726.0000 3.0000E+03 1.0959E+06 0 0 0 13
+653064.6250 6.3000E+03 1.9386E+07 0 0 0 12
+715064.6250 3.0000E+02 9.7857E+05 0 0 0 10
+716771.3125 3.0000E+03 2.1930E+08 0 0 0 8
+802258.9375 3.0000E+03 9.9349E+06 0 0 0 15
+862003.6875 3.0000E+03 4.3293E+08 0 0 0 8
+872483.5000 3.0000E+02 1.7335E+07 0 0 0 10
+955891.2500 3.0000E+02 9.8289E+05 0 0 0 13
+1098425.500 3.0000E+03 5.7787E+04 0 0 0 15
+1113807.625 3.0000E+02 7.6533E+07 0 0 0 10
+1122279.500 3.0000E+02 4.8816E+06 0 0 0 13
+1178601.750 3.0000E+03 8.2959E+06 0 0 0 9
+1192267.500 3.0000E+02 3.7506E+05 0 0 0 12
+1207629.500 3.0000E+02 1.9795E+07 0 0 0 13
+1388859.125 3.0000E+03 4.2714E+06 0 0 0 15
+1769072.750 3.0000E+03 3.2136E+04 0 0 0 8
+2248487.000 3.0000E+03 1.6932E+05 0 0 0 8
+-1.1851E+06 1.1848E+05 2.6057E+08 0 0 0 18
+-1.6155E+05 6.5000E+02 4.2640E+05 0 0 0 18
+2235.000000 3.7000E+02 9.3266E+02 0 0 0 20
+4977.000000 6.0000E+02 1.1220E+03 0 0 0 19
+183488.8281 6.0000E+03 9.9976E+06 0 0 0 18
+235225.3906 8.0000E+02 1.1541E+05 0 0 0 21
+302839.2188 3.7000E+02 2.7443E+05 0 0 0 20
+413136.1875 6.0000E+02 1.5801E+06 0 0 0 19
+645239.8125 8.0000E+02 4.0143E+05 0 0 0 21
+704912.0000 8.0000E+02 4.2319E+05 0 0 0 21
+745454.0000 3.7000E+02 1.4735E+07 0 0 0 20
+796946.1250 6.0000E+02 4.6932E+05 0 0 0 19
+807379.8125 6.0000E+02 2.7433E+05 0 0 0 19
+810796.9375 6.0000E+02 4.1931E+05 0 0 0 19
+844674.6250 3.7000E+02 3.3153E+06 0 0 0 20
+878822.8125 8.0000E+02 1.1063E+05 0 0 0 21
+979821.3125 6.0000E+02 5.9182E+05 0 0 0 19
+1182175.750 6.0000E+03 5.9124E+06 0 0 0 18
+1217821.125 8.0000E+02 1.8889E+06 0 0 0 21
+1274871.500 6.0000E+02 2.2255E+06 0 0 0 19
+1302032.875 8.0000E+02 3.0479E+05 0 0 0 21
+1310774.875 3.7000E+02 3.3971E+05 0 0 0 20
+1337984.375 6.0000E+02 4.6240E+06 0 0 0 19
+1356024.750 3.7000E+02 1.2271E+07 0 0 0 20
+1383597.625 6.0000E+02 2.5336E+07 0 0 0 19
+1400981.375 8.0000E+02 1.8976E+06 0 0 0 21
+1412107.750 3.7000E+02 6.6862E+05 0 0 0 20
+1586007.000 6.0000E+03 2.3644E+07 0 0 0 18
+2583249.500 6.0000E+03 9.2076E+07 0 0 0 18
+-1.1592E+07 1.2000E+03 7.5174E+09 0 0 0 23
+-9.1926E+06 1.2000E+03 1.4356E+10 0 0 0 23
+433901.3750 1.2000E+03 4.3760E+07 0 0 0 25
+999736.9375 1.2000E+03 9.6583E+07 0 0 0 26
+1307683.875 1.2000E+03 4.2027E+07 0 0 0 25
+1630813.125 1.2000E+03 7.1367E+04 0 0 0 25
+1650581.000 1.2000E+03 3.9013E+06 0 0 0 29
+1833142.125 1.2000E+03 7.8352E+06 0 0 0 26
+1898468.875 1.2000E+03 2.8678E+07 0 0 0 24
+2372699.000 1.2000E+03 1.5533E+08 0 0 0 23
+2888249.750 1.2000E+03 1.8859E+06 0 0 0 24
+3004838.500 1.2000E+03 2.3338E+03 0 0 0 24
+3181814.500 1.2000E+03 5.1769E+08 0 0 0 24
+3203037.750 1.2000E+03 1.7923E+08 0 0 0 23
+3204505.000 1.2000E+03 3.1091E+05 0 0 0 28
+3239197.250 1.2000E+03 2.5141E+08 0 0 0 26
+3431828.250 1.2000E+03 6.1570E+05 0 0 0 27
+3438834.250 1.2000E+03 1.8039E+06 0 0 0 28
+3636796.000 1.2000E+03 7.0184E+08 0 0 0 25
+3763624.250 1.2000E+03 1.6031E+07 0 0 0 29
+3853751.500 1.2000E+03 5.6245E+08 0 0 0 23
+4175216.750 1.2000E+03 7.0220E+07 0 0 0 26
+4288830.500 1.2000E+03 5.6268E+07 0 0 0 25
+4303685.000 1.2000E+03 1.6078E+07 0 0 0 24
+4461693.000 1.2000E+03 7.7996E+07 0 0 0 23
+4525253.000 1.2000E+03 4.1733E+06 0 0 0 27
+4591673.500 1.2000E+03 9.1070E+04 0 0 0 29
+4592562.000 1.2000E+03 1.7527E+05 0 0 0 28
+4816678.000 1.2000E+03 4.7145E+07 0 0 0 25
+5055537.000 1.2000E+03 5.2134E+07 0 0 0 26
+5118596.000 1.2000E+03 1.7864E+07 0 0 0 29
+5365329.500 1.2000E+03 9.8062E+05 0 0 0 27
+5617318.000 1.2000E+03 3.3197E+07 0 0 0 28
+5666636.000 1.2000E+03 1.2687E+07 0 0 0 27
+5912201.500 1.2000E+03 1.2942E+07 0 0 0 29
+5986110.000 1.2000E+03 7.1061E+06 0 0 0 26
+6076846.000 1.2000E+03 5.1667E+06 0 0 0 28
+6116665.000 1.2000E+03 5.5499E+06 0 0 0 24
+6389893.000 1.2000E+03 4.9356E+06 0 0 0 29
+6813680.500 1.2000E+03 3.2629E+06 0 0 0 28
+6833136.500 1.2000E+03 5.1405E+06 0 0 0 27
+7373000.000 1.2000E+03 2.4000E+06 0 0 0 24
+8820920.000 1.2000E+03 1.1234E+10 0 0 0 25
+10934820.00 1.2000E+03 2.7611E+05 0 0 0 23
+15050371.00 1.2000E+03 6.3499E+05 0 0 0 23
+25004488.00 1.2000E+03 6.9186E+03 0 0 0 23
+
+
+RADIUS PARAMETERS FOLLOW
+ 4.13642 4.13642 0-1 1 4 5
+ 4.94372 4.94372 0-1 2 3 6 7
+ 4.40000 4.40000 0-1 8 91011121314151617
+ 4.20000 4.20000 0-11819202122
+ 4.20000 4.20000 0-123242526272829
+
+ISOTOPIC MASSES AND ABUNDANCES FOLLOW
+ 27.976929 1.0000000 .9200 1 1 2 3 4 5 6 7
+ 28.976496 .0467000 .0500 1 8 91011121314151617
+ 29.973772 .0310000 .0200 11819202122
+ 16.000000 1.0000000 .0100000 023242526272829
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
new file mode 100644
index 0000000..bd27f30
--- /dev/null
+++ b/tests/unit/conftest.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+"""Shared pytest fixtures for SAMMY tests."""
+
+import os
+from pathlib import Path
+from typing import Dict, Generator
+from unittest.mock import Mock
+
+import pytest
+
+
+@pytest.fixture
+def test_data_dir() -> Path:
+ """Get path to test data directory."""
+ return Path(__file__).parents[2] / "tests/data/ex012"
+
+
+@pytest.fixture
+def temp_working_dir(tmp_path) -> Path:
+ """Create temporary working directory."""
+ work_dir = tmp_path / "sammy_test"
+ work_dir.mkdir(exist_ok=True)
+ return work_dir
+
+
+@pytest.fixture
+def temp_output_dir(temp_working_dir) -> Path:
+ """Create temporary output directory."""
+ output_dir = temp_working_dir / "output"
+ output_dir.mkdir(exist_ok=True)
+ return output_dir
+
+
+@pytest.fixture
+def mock_sammy_files(test_data_dir) -> Dict[str, Path]:
+ """Provide paths to test input files."""
+ return {
+ "input_file": test_data_dir / "ex012a.inp",
+ "parameter_file": test_data_dir / "ex012a.par",
+ "data_file": test_data_dir / "ex012a.dat",
+ }
+
+
+@pytest.fixture
+def mock_sammy_output() -> str:
+ """Provide mock SAMMY output with success message."""
+ return """
+ SAMMY execution log
+ ... processing ...
+ Normal finish to SAMMY
+ """
+
+
+@pytest.fixture
+def mock_sammy_error_output() -> str:
+ """Provide mock SAMMY output with error message."""
+ return """
+ SAMMY execution log
+ Error: Invalid input parameters
+ SAMMY execution failed
+ """
+
+
+@pytest.fixture
+def mock_sammy_results(temp_working_dir) -> None:
+ """Create mock SAMMY output files."""
+ # Create some mock output files
+ files = ["SAMMY.LPT", "SAMMY.PAR", "SAMMY.LST", "SAMMY.ODF"]
+ for file in files:
+ (temp_working_dir / file).write_text("Mock SAMMY output")
+
+
+@pytest.fixture
+def clean_env() -> Generator:
+ """Remove SAMMY-related environment variables temporarily."""
+ # Store original environment
+ orig_env = {}
+ env_vars = ["SAMMY_PATH", "NOVA_URL", "NOVA_API_KEY"]
+
+ for var in env_vars:
+ orig_env[var] = os.environ.get(var)
+ if var in os.environ:
+ del os.environ[var]
+
+ yield
+
+ # Restore original environment
+ for var, value in orig_env.items():
+ if value is not None:
+ os.environ[var] = value
+
+
+@pytest.fixture
+def mock_docker():
+ """Mock Docker client."""
+ mock = Mock()
+ mock.containers.run.return_value = "Mock container"
+ mock.images.get.return_value = True
+ return mock
+
+
+@pytest.fixture
+def mock_nova():
+ """Mock NOVA client."""
+ mock = Mock()
+ mock.connect.return_value.__enter__.return_value = mock
+ mock.create_data_store.return_value = "mock_datastore"
+ return mock
diff --git a/tests/unit/pleiades/core/test_constants.py b/tests/unit/pleiades/core/test_constants.py
new file mode 100644
index 0000000..9726537
--- /dev/null
+++ b/tests/unit/pleiades/core/test_constants.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+"""
+Test suite for physical constants and unit conversions.
+
+Reasoning:
+- Verify accuracy of physical constants
+- Test unit conversion functions
+- Ensure immutability of constants
+- Validate computed properties
+"""
+
+import pytest
+from pydantic import ValidationError
+
+from pleiades.core.constants import CONSTANTS
+from pleiades.core.models import Mass, UnitType
+
+
+def test_constants_immutability():
+ """Test that constants cannot be modified."""
+ with pytest.raises(ValidationError):
+ CONSTANTS.speed_of_light = 0
+
+ with pytest.raises(ValidationError):
+ CONSTANTS.neutron_mass = Mass(value=0, unit_type=UnitType.MASS)
+
+
+def test_mass_constants():
+ """Test mass constants values and units."""
+ assert CONSTANTS.neutron_mass_amu == pytest.approx(1.008664915)
+ assert CONSTANTS.proton_mass_amu == pytest.approx(1.007276466)
+ assert CONSTANTS.electron_mass_amu == pytest.approx(0.000548579909)
+
+
+def test_computed_masses():
+ """Test computed mass conversions."""
+ expected_neutron_kg = 1.674927471e-27 # kg
+ assert CONSTANTS.neutron_mass_kg == pytest.approx(expected_neutron_kg, rel=1e-8)
+
+
+def test_constant_precisions():
+ """Test that constants have correct significant figures."""
+ assert len(str(CONSTANTS.avogadro_number)) >= 8 # At least 8 significant figures
+ assert len(str(CONSTANTS.planck_constant)) >= 8
+
+
+def test_fundamental_constants():
+ """Test fundamental constants against known values."""
+ assert CONSTANTS.speed_of_light == 299792458.0
+ assert CONSTANTS.elementary_charge == pytest.approx(1.602176634e-19)
+ assert CONSTANTS.boltzmann_constant == pytest.approx(8.617333262e-5)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/core/test_data_manager.py b/tests/unit/pleiades/core/test_data_manager.py
new file mode 100644
index 0000000..7cd6bbc
--- /dev/null
+++ b/tests/unit/pleiades/core/test_data_manager.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""Unit tests for the NuclearDataManager class."""
+
+# tests/unit/pleiades/core/test_data_manager.py
+import pytest
+
+from pleiades.core.data_manager import NuclearDataManager
+from pleiades.core.models import CrossSectionPoint, DataCategory, IsotopeIdentifier, IsotopeInfo, IsotopeMassData
+
+
+@pytest.fixture
+def data_manager():
+ """Create a NuclearDataManager instance using actual package data."""
+ return NuclearDataManager()
+
+
+def test_list_files(data_manager):
+ """Test listing available files."""
+ files = data_manager.list_files()
+ assert DataCategory.ISOTOPES in files
+ # Test for known files that should exist
+ isotope_files = files[DataCategory.ISOTOPES]
+ assert "isotopes.info" in isotope_files
+ assert "mass.mas20" in isotope_files
+ assert "neutrons.list" in isotope_files
+
+
+def test_get_isotope_info_u238(data_manager):
+ """Test U-238 isotope information retrieval."""
+ info = data_manager.get_isotope_info(IsotopeIdentifier.from_string("U-238"))
+ assert isinstance(info, IsotopeInfo)
+ # Test against known U-238 values
+ assert info.spin == 0.0
+ assert abs(info.abundance - 0.992745 * 100) < 1e-6
+
+
+def test_get_mass_data_u238(data_manager):
+ """Test U-238 mass data retrieval."""
+ mass_data = data_manager.get_mass_data(IsotopeIdentifier(element="U", mass_number=238))
+ assert isinstance(mass_data, IsotopeMassData)
+ # Test against known U-238 values from mass.mas20
+ expected_mass = 238.050786936
+ assert abs(mass_data.atomic_mass - expected_mass) < 1e-6
+
+
+def test_read_cross_section_data_u238(data_manager):
+ """Test U-238 cross-section data reading."""
+ xs_data = data_manager.read_cross_section_data("u-n.tot", "U-238")
+ assert len(xs_data) > 0
+ assert all(isinstance(point, CrossSectionPoint) for point in xs_data)
+
+
+def test_get_mat_number_u238(data_manager):
+ """Test U-238 MAT number retrieval."""
+ mat = data_manager.get_mat_number("U-238")
+ assert mat == 9237 # Verify this is the correct MAT number
+
+
+# Error cases
+def test_get_isotope_info_nonexistent(data_manager):
+ """Test handling of nonexistent isotope."""
+ assert data_manager.get_isotope_info(IsotopeIdentifier(element="X", mass_number=999)) is None
+
+
+def test_file_not_found(data_manager):
+ """Test handling of nonexistent file."""
+ with pytest.raises(FileNotFoundError):
+ data_manager.get_file_path(DataCategory.ISOTOPES, "nonexistent.info")
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/core/test_models.py b/tests/unit/pleiades/core/test_models.py
new file mode 100644
index 0000000..ea810f2
--- /dev/null
+++ b/tests/unit/pleiades/core/test_models.py
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+"""Unit tests for core data models."""
+
+import pytest
+from pydantic import ValidationError
+
+from pleiades.core.models import (
+ CrossSectionPoint,
+ Isotope,
+ IsotopeIdentifier,
+ IsotopeInfo,
+ IsotopeMassData,
+ Mass,
+)
+
+
+@pytest.fixture
+def u238_identifier():
+ """Create a U-238 isotope identifier."""
+ return IsotopeIdentifier(element="U", mass_number=238)
+
+
+@pytest.fixture
+def sample_isotope(u238_identifier):
+ """Create a sample U-238 isotope instance."""
+ return Isotope(
+ identifier=u238_identifier,
+ atomic_mass=Mass(value=238.0289),
+ thickness=1.0,
+ thickness_unit="cm",
+ abundance=0.992745,
+ density=19.1, # g/cm³
+ density_unit="g/cm3",
+ )
+
+
+def test_isotope_identifier_creation():
+ """Test IsotopeIdentifier creation and validation."""
+ identifier = IsotopeIdentifier(element="U", mass_number=238)
+ assert identifier.element == "U"
+ assert identifier.mass_number == 238
+
+ # Test string conversion
+ assert str(identifier) == "U-238"
+
+ # Test invalid inputs
+ with pytest.raises(ValidationError):
+ IsotopeIdentifier(element="1U", mass_number=238)
+ with pytest.raises(ValidationError):
+ IsotopeIdentifier(element="U", mass_number=-1)
+
+
+def test_isotope_identifier_from_string():
+ """Test IsotopeIdentifier creation from string."""
+ identifier = IsotopeIdentifier.from_string("U-238")
+ assert identifier.element == "U"
+ assert identifier.mass_number == 238
+
+ # Test invalid formats
+ with pytest.raises(ValueError):
+ IsotopeIdentifier.from_string("U238")
+ with pytest.raises(ValueError):
+ IsotopeIdentifier.from_string("238U")
+
+
+def test_isotope_creation(sample_isotope):
+ """Test Isotope model creation and validation."""
+ assert sample_isotope.density == 19.1
+ assert sample_isotope.thickness_unit == "cm"
+
+ # Test validation
+ with pytest.raises(ValidationError):
+ Isotope(
+ identifier=sample_isotope.identifier,
+ atomic_mass=Mass(value=-1.0), # Invalid mass
+ thickness=1.0,
+ thickness_unit="cm",
+ abundance=0.5,
+ density=1.0,
+ )
+
+
+def test_isotope_areal_density(sample_isotope):
+ """Test areal density calculation."""
+ # Test with different thickness units
+ cm_isotope = sample_isotope
+ mm_isotope = Isotope(**{**sample_isotope.model_dump(), "thickness": 10.0, "thickness_unit": "mm"})
+
+ # Should give same result for equivalent thicknesses
+ assert pytest.approx(cm_isotope.areal_density) == mm_isotope.areal_density
+
+
+def test_cross_section_point():
+ """Test CrossSectionPoint model."""
+ point = CrossSectionPoint(energy=1.0, cross_section=10.0)
+ assert point.energy == 1.0
+ assert point.cross_section == 10.0
+
+ with pytest.raises(ValidationError):
+ CrossSectionPoint(energy=-1.0, cross_section=10.0)
+ with pytest.raises(ValidationError):
+ CrossSectionPoint(energy=1.0, cross_section=-10.0)
+
+
+def test_isotope_mass_data():
+ """Test IsotopeMassData model."""
+ data = IsotopeMassData(atomic_mass=238.0289, mass_uncertainty=0.0001, binding_energy=7.6, beta_decay_energy=None)
+ assert data.atomic_mass == pytest.approx(238.0289)
+ assert data.binding_energy == pytest.approx(7.6)
+ assert data.beta_decay_energy is None
+
+
+def test_isotope_info():
+ """Test IsotopeInfo model."""
+ info = IsotopeInfo(spin=0.0, abundance=99.2745)
+ assert info.spin == 0.0
+ assert info.abundance == pytest.approx(99.2745)
+
+ with pytest.raises(ValidationError):
+ IsotopeInfo(spin=-1.0, abundance=50.0)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/core/test_transmissions.py b/tests/unit/pleiades/core/test_transmissions.py
new file mode 100644
index 0000000..e2962f6
--- /dev/null
+++ b/tests/unit/pleiades/core/test_transmissions.py
@@ -0,0 +1,123 @@
+# Module: pleiades/tests/core/test_transmission.py
+"""Unit tests for transmission calculations."""
+
+import numpy as np
+import pytest
+
+from pleiades.core.models import CrossSectionPoint, Isotope, IsotopeIdentifier, Mass
+from pleiades.core.transmission import TransmissionError, calculate_transmission
+
+
+@pytest.fixture
+def test_energies():
+ """Create test energy grid."""
+ return np.logspace(0, 6, 10) # 1 eV to 1 MeV
+
+
+@pytest.fixture
+def sample_xs_data():
+ """Create sample cross-section data."""
+ return [
+ CrossSectionPoint(energy=1.0, cross_section=10.0),
+ CrossSectionPoint(energy=10.0, cross_section=5.0),
+ CrossSectionPoint(energy=100.0, cross_section=2.0),
+ CrossSectionPoint(energy=1000.0, cross_section=1.0),
+ ]
+
+
+@pytest.fixture
+def test_isotope(sample_xs_data):
+ """Create test isotope with cross-section data."""
+ identifier = IsotopeIdentifier(element="U", mass_number=238)
+ isotope = Isotope(
+ identifier=identifier,
+ atomic_mass=Mass(value=238.0289),
+ thickness=2.0,
+ thickness_unit="cm",
+ abundance=0.992745,
+ density=19.1,
+ density_unit="g/cm3",
+ )
+ isotope.xs_data = sample_xs_data
+ return isotope
+
+
+def test_transmission_calculation(test_isotope, test_energies):
+ """Test basic transmission calculation."""
+ results = calculate_transmission(test_isotope, test_energies)
+
+ assert len(results) == len(test_energies)
+ for energy, trans in results:
+ assert 0.0 <= trans <= 1.0 # Physical bounds
+
+
+def test_transmission_interpolation(test_isotope):
+ """Test interpolation of cross sections."""
+ # Test point between known values
+ energies = [1.0] # Between 1.0 and 10.0 in sample data
+ results = calculate_transmission(test_isotope, energies)
+
+ assert len(results) == 1
+ energy, trans = results[0]
+ assert 0.0 <= trans <= 1.0
+
+
+def test_full_transmission():
+ """Test case with zero cross section."""
+ identifier = IsotopeIdentifier(element="U", mass_number=238)
+ isotope = Isotope(
+ identifier=identifier,
+ atomic_mass=Mass(value=238.0289),
+ thickness=1.0,
+ thickness_unit="cm",
+ abundance=0.992745,
+ density=19.1,
+ density_unit="g/cm3",
+ )
+ isotope.xs_data = [CrossSectionPoint(energy=1.0, cross_section=0.0)]
+
+ results = calculate_transmission(isotope, [1.0])
+ assert results[0][1] == pytest.approx(1.0) # Should be full transmission
+
+
+def test_no_xs_data(test_isotope):
+ """Test error when no cross-section data available."""
+ test_isotope.xs_data = []
+ with pytest.raises(TransmissionError):
+ calculate_transmission(test_isotope, [1.0])
+
+
+def test_transmission_thickness_scaling(sample_xs_data):
+ """Test transmission scales correctly with thickness."""
+ identifier = IsotopeIdentifier(element="U", mass_number=238)
+ isotope1 = Isotope(
+ identifier=identifier,
+ atomic_mass=Mass(value=238.0289),
+ thickness=1.0,
+ thickness_unit="cm",
+ abundance=0.992745,
+ density=19.1,
+ density_unit="g/cm3",
+ )
+ isotope2 = Isotope(
+ identifier=identifier,
+ atomic_mass=Mass(value=238.0289),
+ thickness=2.0, # Double thickness
+ thickness_unit="cm",
+ abundance=0.992745,
+ density=19.1,
+ density_unit="g/cm3",
+ )
+
+ isotope1.xs_data = sample_xs_data
+ isotope2.xs_data = sample_xs_data
+
+ trans1 = calculate_transmission(isotope1, [1.0])[0][1]
+ trans2 = calculate_transmission(isotope2, [1.0])[0][1]
+
+ # Trans2 should be approximately trans1 squared
+ assert trans2 == pytest.approx(trans1 * trans1, rel=1e-5)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/backends/test_docker.py b/tests/unit/pleiades/sammy/backends/test_docker.py
new file mode 100644
index 0000000..76f0591
--- /dev/null
+++ b/tests/unit/pleiades/sammy/backends/test_docker.py
@@ -0,0 +1,173 @@
+#!/usr/bin/env python
+"""Unit tests for Docker SAMMY backend."""
+
+import subprocess
+from pathlib import Path
+
+import pytest
+
+from pleiades.sammy.backends.docker import DockerSammyRunner
+from pleiades.sammy.config import DockerSammyConfig
+from pleiades.sammy.interface import (
+ EnvironmentPreparationError,
+ SammyFiles,
+)
+
+
+@pytest.fixture
+def mock_docker_command(monkeypatch):
+ """Mock shutil.which to simulate docker being available."""
+
+ def mock_which(cmd):
+ if cmd == "docker":
+ return "/usr/bin/docker"
+ return None
+
+ monkeypatch.setattr("shutil.which", mock_which)
+ return mock_which
+
+
+@pytest.fixture
+def mock_subprocess_docker(monkeypatch, mock_sammy_output):
+ """Mock subprocess.run for docker commands."""
+
+ def mock_run(*args, **kwargs):
+ _ = kwargs # Unused
+ cmd_str = " ".join(str(x) for x in args[0]) # Convert command array to string
+ if "docker image inspect" in cmd_str: # Image check
+ return subprocess.CompletedProcess(args=args, returncode=0, stdout='[{"Id": "mock_image_id"}]', stderr="")
+ if "docker run" in cmd_str: # Docker run
+ return subprocess.CompletedProcess(args=args, returncode=0, stdout=mock_sammy_output, stderr="")
+ return subprocess.CompletedProcess(args=args, returncode=1, stdout="", stderr="Command not found")
+
+ monkeypatch.setattr(subprocess, "run", mock_run)
+ return mock_run
+
+
+@pytest.fixture
+def mock_subprocess_docker_fail(monkeypatch, mock_sammy_error_output):
+ """Mock subprocess.run for docker failure."""
+
+ def mock_run(*args, **kwargs):
+ _ = kwargs # Unused
+ cmd_str = " ".join(str(x) for x in args[0]) # Convert command array to string
+ if "docker image inspect" in cmd_str: # Image check should succeed
+ return subprocess.CompletedProcess(args=args, returncode=0, stdout='[{"Id": "mock_image_id"}]', stderr="")
+ if "docker run" in cmd_str: # Docker run should fail
+ return subprocess.CompletedProcess(args=args, returncode=1, stdout="", stderr=mock_sammy_error_output)
+ return subprocess.CompletedProcess(args=args, returncode=1, stdout="", stderr="Command not found")
+
+ monkeypatch.setattr(subprocess, "run", mock_run)
+ return mock_run
+
+
+@pytest.fixture
+def docker_config(temp_working_dir):
+ """Create Docker SAMMY configuration."""
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="kedokudo/sammy-docker",
+ container_working_dir=Path("/sammy/work"),
+ container_data_dir=Path("/sammy/data"),
+ )
+ config.validate()
+ return config
+
+
+class TestDockerSammyRunner:
+ """Tests for DockerSammyRunner."""
+
+ def test_initialization(self, docker_config, mock_docker_command):
+ """Should initialize with valid config."""
+ _ = mock_docker_command # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ assert runner.config == docker_config
+
+ def test_prepare_environment(self, docker_config, mock_sammy_files, mock_subprocess_docker, mock_docker_command):
+ """Should prepare environment successfully."""
+ _ = mock_docker_command # implicitly used via fixture
+ _ = mock_subprocess_docker # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ assert docker_config.output_dir.exists()
+
+ def test_prepare_environment_missing_docker(self, docker_config, mock_sammy_files, monkeypatch):
+ """Should raise error when docker is not available."""
+
+ def mock_which(cmd):
+ _ = cmd # Unused
+ return None
+
+ monkeypatch.setattr("shutil.which", mock_which)
+
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ with pytest.raises(EnvironmentPreparationError) as exc:
+ runner.prepare_environment(files)
+ assert "Docker not found" in str(exc.value)
+
+ def test_execute_sammy_success(self, docker_config, mock_sammy_files, mock_subprocess_docker, mock_docker_command):
+ """Should execute SAMMY successfully in container."""
+ _ = mock_docker_command # implicitly used via fixture
+ _ = mock_subprocess_docker # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert result.success
+ assert "Normal finish to SAMMY" in result.console_output
+ assert result.error_message is None
+
+ def test_execute_sammy_failure(
+ self, docker_config, mock_sammy_files, mock_subprocess_docker_fail, mock_docker_command
+ ):
+ """Should handle SAMMY execution failure in container."""
+ _ = mock_docker_command # implicitly used via fixture
+ _ = mock_subprocess_docker_fail # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert not result.success
+ assert "Docker execution failed" in result.error_message
+
+ def test_collect_outputs(
+ self, docker_config, mock_sammy_files, mock_subprocess_docker, mock_docker_command, mock_sammy_results
+ ):
+ """Should collect output files from container."""
+ _ = mock_docker_command # implicitly used via fixture
+ _ = mock_subprocess_docker # implicitly used via fixture
+ _ = mock_sammy_results # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+ runner.collect_outputs(result)
+
+ assert (docker_config.output_dir / "SAMMY.LPT").exists()
+ assert (docker_config.output_dir / "SAMMY.PAR").exists()
+
+ def test_cleanup(self, docker_config, mock_sammy_files, mock_subprocess_docker, mock_docker_command):
+ """Should perform cleanup successfully."""
+ _ = mock_docker_command # implicitly used via fixture
+ _ = mock_subprocess_docker # implicitly used via fixture
+ runner = DockerSammyRunner(docker_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+ runner.collect_outputs(result)
+ runner.cleanup()
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/backends/test_local.py b/tests/unit/pleiades/sammy/backends/test_local.py
new file mode 100644
index 0000000..e1845e4
--- /dev/null
+++ b/tests/unit/pleiades/sammy/backends/test_local.py
@@ -0,0 +1,179 @@
+#!/usr/bin/env python
+"""Unit tests for local SAMMY backend."""
+
+import subprocess
+from pathlib import Path
+
+import pytest
+
+from pleiades.sammy.backends.local import LocalSammyRunner
+from pleiades.sammy.config import LocalSammyConfig
+from pleiades.sammy.interface import EnvironmentPreparationError, SammyExecutionError, SammyFiles
+
+
+@pytest.fixture
+def mock_sammy_executable(monkeypatch):
+ """Mock shutil.which to simulate SAMMY being available."""
+
+ def mock_which(cmd):
+ if cmd == "sammy":
+ return "sammy"
+ return None
+
+ monkeypatch.setattr("shutil.which", mock_which)
+ return mock_which
+
+
+@pytest.fixture
+def local_config(temp_working_dir, mock_sammy_executable):
+ """Create local SAMMY configuration."""
+ _ = mock_sammy_executable # make pre-commit happy
+ local_sammy_config = LocalSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ sammy_executable=Path("sammy"),
+ shell_path=Path("/bin/bash"),
+ )
+ # call validate to ensure directories are created
+ local_sammy_config.validate()
+ return local_sammy_config
+
+
+@pytest.fixture
+def mock_subprocess_run(monkeypatch, mock_sammy_output):
+ """Mock subprocess.run to avoid actual SAMMY execution."""
+
+ def mock_run(*args, **kwargs):
+ _ = kwargs
+ result = subprocess.CompletedProcess(args=args, returncode=0, stdout=mock_sammy_output, stderr="")
+ return result
+
+ monkeypatch.setattr(subprocess, "run", mock_run)
+ return mock_run
+
+
+@pytest.fixture
+def mock_subprocess_fail(monkeypatch, mock_sammy_error_output):
+ """Mock subprocess.run to simulate SAMMY failure."""
+
+ def mock_run(*args, **kwargs):
+ _ = kwargs
+ result = subprocess.CompletedProcess(
+ args=args,
+ returncode=1,
+ stdout="",
+ stderr=mock_sammy_error_output,
+ )
+ return result
+
+ monkeypatch.setattr(subprocess, "run", mock_run)
+ return mock_run
+
+
+class TestLocalSammyRunner:
+ """Tests for LocalSammyRunner."""
+
+ def test_initialization(self, local_config):
+ """Should initialize with valid config."""
+ runner = LocalSammyRunner(local_config)
+ assert runner.config == local_config
+ assert runner.validate_config()
+
+ def test_prepare_environment(self, local_config, mock_sammy_files):
+ """Should prepare environment successfully."""
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ assert local_config.output_dir.exists()
+
+ def test_prepare_environment_invalid_files(self, local_config, tmp_path):
+ """Should raise error with invalid files."""
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(
+ input_file=tmp_path / "nonexistent.inp",
+ parameter_file=tmp_path / "nonexistent.par",
+ data_file=tmp_path / "nonexistent.dat",
+ )
+
+ with pytest.raises(EnvironmentPreparationError):
+ runner.prepare_environment(files)
+
+ def test_execute_sammy_success(self, local_config, mock_sammy_files, mock_subprocess_run):
+ """Should execute SAMMY successfully."""
+ _ = mock_subprocess_run # make pre-commit happy
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # mock_subprocess_run is used implicitly via the fixture's monkeypatch
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert result.success
+ assert "Normal finish to SAMMY" in result.console_output
+ assert result.error_message is None
+
+ def test_execute_sammy_failure(self, local_config, mock_sammy_files, mock_subprocess_fail):
+ """Should handle SAMMY execution failure."""
+ _ = mock_subprocess_fail # make pre-commit happy
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # mock_subprocess_fail is used implicitly via the fixture's monkeypatch
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert not result.success
+ assert "SAMMY execution failed" in result.error_message
+
+ def test_execute_sammy_crash(self, local_config, mock_sammy_files, monkeypatch):
+ """Should handle subprocess crash."""
+
+ def mock_run(*args, **kwargs):
+ _ = args
+ _ = kwargs
+ raise subprocess.SubprocessError("Mock crash")
+
+ monkeypatch.setattr(subprocess, "run", mock_run)
+
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ with pytest.raises(SammyExecutionError) as exc:
+ runner.execute_sammy(files)
+ assert "Mock crash" in str(exc.value)
+
+ def test_collect_outputs(self, local_config, mock_sammy_files, mock_subprocess_run, mock_sammy_results):
+ """Should collect output files."""
+ _ = mock_subprocess_run # make pre-commit happy
+ _ = mock_sammy_results # make pre-commit happy
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # Execute SAMMY to create outputs
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ # Collect outputs
+ runner.collect_outputs(result)
+
+ # Check output files were moved
+ assert (local_config.output_dir / "SAMMY.LPT").exists()
+ assert (local_config.output_dir / "SAMMY.PAR").exists()
+
+ def test_cleanup(self, local_config, mock_sammy_files, mock_subprocess_run, mock_sammy_results):
+ """Should perform cleanup successfully."""
+ _ = mock_subprocess_run # make pre-commit happy
+ _ = mock_sammy_results # make pre-commit happy
+ runner = LocalSammyRunner(local_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+ runner.collect_outputs(result)
+ runner.cleanup()
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/backends/test_nova.py b/tests/unit/pleiades/sammy/backends/test_nova.py
new file mode 100644
index 0000000..f8835be
--- /dev/null
+++ b/tests/unit/pleiades/sammy/backends/test_nova.py
@@ -0,0 +1,165 @@
+#!/usr/bin/env python
+"""Unit tests for NOVA SAMMY backend implementation."""
+
+import os
+from datetime import datetime
+from unittest import mock
+
+import pytest
+
+from pleiades.sammy.backends.nova_ornl import NovaSammyRunner
+from pleiades.sammy.config import NovaSammyConfig
+from pleiades.sammy.interface import SammyFiles
+
+# Mock environment variables
+os.environ["NOVA_URL"] = "https://mock_nova_url"
+os.environ["NOVA_API_KEY"] = "mock_api_key"
+
+
+@pytest.fixture
+def nova_config(temp_working_dir):
+ """Create NOVA SAMMY configuration."""
+ config = NovaSammyConfig(
+ url=os.environ["NOVA_URL"],
+ api_key=os.environ["NOVA_API_KEY"],
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ )
+ config.validate()
+ return config
+
+
+@pytest.fixture
+def mock_nova_connection():
+ """Mock the NovaConnection object."""
+ with mock.patch("pleiades.sammy.backends.nova_ornl.NovaConnection") as mock_connection:
+ yield mock_connection.return_value
+
+
+@pytest.fixture
+def mock_tool():
+ """Mock the Tool object."""
+ with mock.patch("pleiades.sammy.backends.nova_ornl.Tool") as mock_tool:
+ yield mock_tool.return_value
+
+
+@pytest.fixture
+def mock_nova(mock_nova_connection, mock_tool):
+ """Mock the Nova object."""
+ with mock.patch("pleiades.sammy.backends.nova_ornl.Nova") as mock_nova:
+ instance = mock_nova.return_value
+ instance.connect.return_value.__enter__.return_value = mock_nova_connection
+ instance.connect.return_value.__enter__.return_value.tool = mock_tool
+ yield instance
+
+
+@pytest.fixture
+def mock_zipfile(monkeypatch):
+ """Mock the zipfile module."""
+ mock_zip_ref = mock.MagicMock()
+ mock_zip_ref.filelist = ["SAMMY.LPT", "SAMMY.PAR"]
+ mock_zipfile_class = mock.MagicMock(return_value=mock_zip_ref)
+ monkeypatch.setattr("pleiades.sammy.backends.nova_ornl.zipfile.ZipFile", mock_zipfile_class)
+ return mock_zipfile_class
+
+
+class TestNovaSammyRunner:
+ """Tests for NovaSammyRunner."""
+
+ def test_initialization(self, nova_config, mock_nova):
+ """Should initialize with valid config."""
+ _ = mock_nova # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ assert runner.config == nova_config
+
+ def test_prepare_environment(self, nova_config, mock_sammy_files, mock_nova):
+ """Should prepare environment successfully."""
+ _ = mock_nova # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ assert nova_config.output_dir.exists()
+
+ def test_execute_sammy_success(self, nova_config, mock_sammy_files, mock_nova, mock_zipfile):
+ """Should execute SAMMY successfully."""
+ _ = mock_zipfile # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # Mock the tool run method
+ mock_nova.connect.return_value.__enter__.return_value.tool.run.return_value = mock.MagicMock(
+ get_dataset=lambda _: mock.MagicMock(get_content=lambda: " Normal finish to SAMMY"),
+ get_collection=lambda _: mock.MagicMock(download=lambda _: None),
+ )
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert result.success
+ assert "Normal finish to SAMMY" in result.console_output
+ assert result.error_message is None
+
+ def test_execute_sammy_failure(self, nova_config, mock_sammy_files, mock_nova, monkeypatch):
+ """Should handle SAMMY execution failure."""
+ _ = mock_nova # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # Mock the execute_sammy method to simulate failure
+ monkeypatch.setattr(
+ runner,
+ "execute_sammy",
+ lambda _: mock.MagicMock(
+ success=False,
+ execution_id="test",
+ start_time=datetime.now(),
+ end_time=datetime.now(),
+ console_output="SAMMY execution failed",
+ error_message="Forced failure",
+ ),
+ )
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ assert not result.success
+ assert "Forced failure" in result.error_message
+
+ def test_collect_outputs(self, nova_config, mock_sammy_files, mock_nova, mock_zipfile):
+ """Should collect output files."""
+ _ = mock_zipfile # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # Mock the tool run method
+ mock_nova.connect.return_value.__enter__.return_value.tool.run.return_value = mock.MagicMock(
+ get_dataset=lambda _: mock.MagicMock(get_content=lambda: "Normal finish to SAMMY"),
+ get_collection=lambda _: mock.MagicMock(download=lambda _: None),
+ )
+
+ runner.prepare_environment(files)
+ result = runner.execute_sammy(files)
+
+ # Create mock output files
+ output_dir = nova_config.output_dir
+ (output_dir / "SAMMY.LPT").touch()
+ (output_dir / "SAMMY.PAR").touch()
+
+ runner.collect_outputs(result)
+
+ assert (output_dir / "SAMMY.LPT").exists()
+ assert (output_dir / "SAMMY.PAR").exists()
+
+ def test_cleanup(self, nova_config, mock_sammy_files, mock_nova):
+ """Should perform cleanup successfully."""
+ _ = mock_nova # make pre-commit happy
+ runner = NovaSammyRunner(nova_config)
+ files = SammyFiles(**mock_sammy_files)
+
+ runner.prepare_environment(files)
+ runner.cleanup()
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_broadening.py b/tests/unit/pleiades/sammy/parameters/test_broadening.py
new file mode 100644
index 0000000..b223720
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_broadening.py
@@ -0,0 +1,163 @@
+#!/usr/bin/env python
+"""Unit tests for card 04::broadening parameters."""
+
+import pytest
+
+from pleiades.sammy.parameters.broadening import BroadeningParameterCard, BroadeningParameters
+from pleiades.sammy.parameters.helper import VaryFlag
+
+# Test data with proper 10-char width formatting
+MAIN_ONLY_LINE = "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0"
+
+WITH_UNC_LINES = [
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+]
+
+FULL_LINES = [
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.000E-01 2.000E-02 1 1",
+ "5.000E-03 1.000E-03",
+]
+
+COMPLETE_CARD = [
+ "BROADening parameters may be varied",
+ "1.234E+00 2.980E+02 1.500E-01 2.500E-02 1.000E+00 5.000E-01 1 0 1 0 1 0",
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.000E-01 2.000E-02 1 1",
+ "5.000E-03 1.000E-03",
+ "",
+]
+
+
+def test_main_parameters_parsing():
+ """Test parsing of main parameters only."""
+ params = BroadeningParameters.from_lines([MAIN_ONLY_LINE])
+
+ # Check values
+ assert params.crfn == pytest.approx(1.234)
+ assert params.temp == pytest.approx(298.0)
+ assert params.thick == pytest.approx(0.15)
+ assert params.deltal == pytest.approx(0.025)
+ assert params.deltag == pytest.approx(1.0)
+ assert params.deltae == pytest.approx(0.5)
+
+ # Check flags
+ assert params.flag_crfn == VaryFlag.YES
+ assert params.flag_temp == VaryFlag.NO
+ assert params.flag_thick == VaryFlag.YES
+ assert params.flag_deltal == VaryFlag.NO
+ assert params.flag_deltag == VaryFlag.YES
+ assert params.flag_deltae == VaryFlag.NO
+
+ # Check optional fields are None
+ assert params.deltc1 is None
+ assert params.deltc2 is None
+ assert params.d_crfn is None
+ assert params.d_temp is None
+
+
+def test_parameters_with_uncertainties():
+ """Test parsing of parameters with uncertainties."""
+ params = BroadeningParameters.from_lines(WITH_UNC_LINES)
+
+ # Check main values
+ assert params.crfn == pytest.approx(1.234)
+ assert params.temp == pytest.approx(298.0)
+
+ # Check uncertainties
+ assert params.d_crfn == pytest.approx(0.01)
+ assert params.d_temp == pytest.approx(1.0)
+ assert params.d_thick == pytest.approx(0.001)
+ assert params.d_deltal == pytest.approx(0.001)
+ assert params.d_deltag == pytest.approx(0.01)
+ assert params.d_deltae == pytest.approx(0.01)
+
+
+def test_full_parameters():
+ """Test parsing of full parameter set including Gaussian parameters."""
+ params = BroadeningParameters.from_lines(FULL_LINES)
+
+ # Check Gaussian parameters
+ assert params.deltc1 == pytest.approx(0.1)
+ assert params.deltc2 == pytest.approx(0.02)
+ assert params.d_deltc1 == pytest.approx(0.005)
+ assert params.d_deltc2 == pytest.approx(0.001)
+ assert params.flag_deltc1 == VaryFlag.YES
+ assert params.flag_deltc2 == VaryFlag.YES
+
+
+def test_format_compliance():
+ """Test that output lines comply with fixed-width format."""
+ params = BroadeningParameters.from_lines(FULL_LINES)
+ output_lines = params.to_lines()
+
+ print(output_lines)
+
+ # Check first line field widths
+ first_line = output_lines[0]
+ assert len(first_line[:10].rstrip()) == 9 # 9 chars + 1 space
+ assert len(first_line[10:20].rstrip()) == 9
+ assert len(first_line[20:30].rstrip()) == 9
+ assert len(first_line[30:40].rstrip()) == 9
+ assert len(first_line[40:50].rstrip()) == 9
+ assert len(first_line[50:60].rstrip()) == 9
+
+
+def test_complete_card():
+ """Test parsing and formatting of complete card including header."""
+ card = BroadeningParameterCard.from_lines(COMPLETE_CARD)
+ output_lines = card.to_lines()
+
+ # Check header
+ assert output_lines[0].startswith("BROAD")
+
+ # Check number of lines
+ assert len(output_lines) == 6 # Header + 4 data lines + blank
+
+ # Check last line is blank
+ assert output_lines[-1].strip() == ""
+
+
+def test_invalid_header():
+ """Test error handling for invalid header."""
+ bad_lines = ["WRONG header", MAIN_ONLY_LINE]
+ with pytest.raises(ValueError, match="Invalid header"):
+ BroadeningParameterCard.from_lines(bad_lines)
+
+
+def test_missing_gaussian_parameter():
+ """Test error handling for incomplete Gaussian parameters."""
+ bad_lines = [
+ MAIN_ONLY_LINE,
+ "1.000E-02 1.000E+00 1.000E-03 1.000E-03 1.000E-02 1.000E-02",
+ "1.000E-01 1", # Missing DELTC2
+ ]
+ with pytest.raises(ValueError, match="Both DELTC1 and DELTC2 must be present"):
+ BroadeningParameters.from_lines(bad_lines)
+
+
+def test_empty_input():
+ """Test error handling for empty input."""
+ with pytest.raises(ValueError, match="No valid parameter line provided"):
+ BroadeningParameters.from_lines([])
+
+
+def test_roundtrip():
+ """Test that parsing and then formatting produces identical output."""
+ card = BroadeningParameterCard.from_lines(COMPLETE_CARD)
+ output_lines = card.to_lines()
+
+ # Parse the output again
+ reparsed_card = BroadeningParameterCard.from_lines(output_lines)
+
+ # Compare all attributes
+ assert card.parameters.crfn == reparsed_card.parameters.crfn
+ assert card.parameters.temp == reparsed_card.parameters.temp
+ assert card.parameters.deltc1 == reparsed_card.parameters.deltc1
+ assert card.parameters.flag_crfn == reparsed_card.parameters.flag_crfn
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_external_r.py b/tests/unit/pleiades/sammy/parameters/test_external_r.py
new file mode 100644
index 0000000..37e8d86
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_external_r.py
@@ -0,0 +1,187 @@
+#!/usr/bin/env python
+"""Unit tests for SAMMY external R-function parameters."""
+
+import pytest
+
+from pleiades.sammy.parameters.external_r import ExternalREntry, ExternalRFormat, ExternalRFunction, VaryFlag
+
+# Sample test data
+FORMAT3_LINES = [
+ "EXTERnal R-function parameters follow",
+ " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0",
+ " 2 1 2.3450E+00 6.7890E+00 2.3400E-01 5.6700E-01 8.9000E-01 0 1 0 0 1",
+ "",
+]
+
+FORMAT3A_LINES = [
+ "R-EXTernal parameters follow",
+ " 1210010001.2340E+005.6780E+001.2300E-014.5600E-017.8900E-018.9000E-019.0000E-01",
+ " 2120100102.3450E+006.7890E+002.3400E-015.6700E-018.9000E-019.1000E-019.2000E-01",
+ "",
+]
+
+
+# Test ExternalREntry
+class TestExternalREntry:
+ def test_format3_parsing(self):
+ """Test parsing of Format 3 entries"""
+ line = " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0"
+ entry = ExternalREntry.from_str(line, ExternalRFormat.FORMAT_3)
+
+ assert entry.spin_group == 1
+ assert entry.channel == 2
+ assert entry.E_down == pytest.approx(1.2340)
+ assert entry.E_up == pytest.approx(5.6780)
+ assert entry.R_con == pytest.approx(0.1230)
+ assert entry.R_lin == pytest.approx(0.4560)
+ assert entry.s_alpha == pytest.approx(0.7890)
+ assert entry.vary_E_down == VaryFlag.YES
+ assert entry.vary_E_up == VaryFlag.NO
+ assert entry.vary_R_con == VaryFlag.NO
+ assert entry.vary_R_lin == VaryFlag.YES
+ assert entry.vary_s_alpha == VaryFlag.NO
+
+ def test_format3a_parsing(self):
+ """Test parsing of Format 3A entries"""
+ line = " 1210010001.2340E+005.6780E+001.2300E-014.5600E-017.8900E-018.9000E-019.0000E-01"
+ for i, char in enumerate(line):
+ print(f"{i+1:2d}: {char}")
+ entry = ExternalREntry.from_str(line, ExternalRFormat.FORMAT_3A)
+
+ assert entry.spin_group == 1
+ assert entry.channel == 2
+ assert entry.E_down == pytest.approx(1.2340)
+ assert entry.E_up == pytest.approx(5.6780)
+ assert entry.R_con == pytest.approx(0.1230)
+ assert entry.R_lin == pytest.approx(0.4560)
+ assert entry.s_con == pytest.approx(0.7890)
+ assert entry.s_lin == pytest.approx(0.8900)
+ assert entry.R_q == pytest.approx(0.9000)
+ assert entry.vary_E_down == VaryFlag.YES
+ assert entry.vary_E_up == VaryFlag.NO
+ assert entry.vary_R_con == VaryFlag.NO
+ assert entry.vary_R_lin == VaryFlag.YES
+ assert entry.vary_s_con == VaryFlag.NO
+ assert entry.vary_s_lin == VaryFlag.NO
+ assert entry.vary_R_q == VaryFlag.NO
+
+ def test_empty_line(self):
+ """Test handling of empty lines"""
+ with pytest.raises(ValueError, match="Empty line provided"):
+ ExternalREntry.from_str("", ExternalRFormat.FORMAT_3)
+
+ def test_negative_s_alpha(self):
+ """Test validation of negative s_alpha value"""
+ line = " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 -7.8900E-01 1 0 0 1 0"
+ with pytest.raises(ValueError, match=".*greater than or equal to 0.*"):
+ ExternalREntry.from_str(line, ExternalRFormat.FORMAT_3)
+
+ def test_format_specific_fields(self):
+ """Test validation of format-specific fields"""
+ # Test Format 3 with Format 3A fields
+ with pytest.raises(ValueError, match="Format 3a specific fields should not be set for Format 3"):
+ ExternalREntry(
+ format_type=ExternalRFormat.FORMAT_3,
+ spin_group=1,
+ channel=2,
+ E_down=1.234,
+ E_up=5.678,
+ R_con=0.123,
+ R_lin=0.456,
+ s_alpha=0.789,
+ s_con=0.890, # This should cause an error
+ )
+
+ # Test Format 3A with Format 3 fields
+ with pytest.raises(ValueError, match="Format 3 specific fields should not be set for Format 3a"):
+ ExternalREntry(
+ format_type=ExternalRFormat.FORMAT_3A,
+ spin_group=1,
+ channel=2,
+ E_down=1.234,
+ E_up=5.678,
+ R_con=0.123,
+ R_lin=0.456,
+ s_con=0.789,
+ s_lin=0.890,
+ R_q=0.901,
+ s_alpha=0.789, # This should cause an error
+ )
+
+
+# Test ExternalRFunction
+class TestExternalRFunction:
+ def test_format3_parsing(self):
+ """Test parsing of complete Format 3 card set"""
+ r_function = ExternalRFunction.from_lines(FORMAT3_LINES)
+ assert r_function.format_type == ExternalRFormat.FORMAT_3
+ assert len(r_function.entries) == 2
+
+ # Test first entry
+ entry1 = r_function.entries[0]
+ assert entry1.spin_group == 1
+ assert entry1.channel == 2
+
+ # Test second entry
+ entry2 = r_function.entries[1]
+ assert entry2.spin_group == 2
+ assert entry2.channel == 1
+
+ def test_format3a_parsing(self):
+ """Test parsing of complete Format 3A card set"""
+ r_function = ExternalRFunction.from_lines(FORMAT3A_LINES)
+ assert r_function.format_type == ExternalRFormat.FORMAT_3A
+ assert len(r_function.entries) == 2
+
+ def test_invalid_header(self):
+ """Test handling of invalid header"""
+ bad_lines = ["WRONG header line", " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0", ""]
+ with pytest.raises(ValueError, match="Invalid header line"):
+ ExternalRFunction.from_lines(bad_lines)
+
+ def test_empty_lines(self):
+ """Test handling of empty input"""
+ with pytest.raises(ValueError, match="No lines provided"):
+ ExternalRFunction.from_lines([])
+
+ def test_roundtrip_format3(self):
+ """Test that to_lines() output can be parsed back correctly for Format 3"""
+ original = ExternalRFunction.from_lines(FORMAT3_LINES)
+ roundtrip = ExternalRFunction.from_lines(original.to_lines())
+
+ assert len(original.entries) == len(roundtrip.entries)
+ for orig_entry, rt_entry in zip(original.entries, roundtrip.entries):
+ assert orig_entry.spin_group == rt_entry.spin_group
+ assert orig_entry.channel == rt_entry.channel
+ assert orig_entry.E_down == pytest.approx(rt_entry.E_down)
+ assert orig_entry.E_up == pytest.approx(rt_entry.E_up)
+ assert orig_entry.R_con == pytest.approx(rt_entry.R_con)
+ assert orig_entry.R_lin == pytest.approx(rt_entry.R_lin)
+ assert orig_entry.s_alpha == pytest.approx(rt_entry.s_alpha)
+
+ def test_roundtrip_format3a(self):
+ """Test that to_lines() output can be parsed back correctly for Format 3A"""
+ original = ExternalRFunction.from_lines(FORMAT3A_LINES)
+ roundtrip = ExternalRFunction.from_lines(original.to_lines())
+
+ assert len(original.entries) == len(roundtrip.entries)
+ for orig_entry, rt_entry in zip(original.entries, roundtrip.entries):
+ assert orig_entry.spin_group == rt_entry.spin_group
+ assert orig_entry.channel == rt_entry.channel
+ assert orig_entry.E_down == pytest.approx(rt_entry.E_down)
+ assert orig_entry.E_up == pytest.approx(rt_entry.E_up)
+ assert orig_entry.R_con == pytest.approx(rt_entry.R_con)
+ assert orig_entry.R_lin == pytest.approx(rt_entry.R_lin)
+ assert orig_entry.s_con == pytest.approx(rt_entry.s_con)
+ assert orig_entry.s_lin == pytest.approx(rt_entry.s_lin)
+ assert orig_entry.R_q == pytest.approx(rt_entry.R_q)
+
+ def test_header_detection(self):
+ """Test header line detection"""
+ assert ExternalRFunction.is_header_line("EXTERnal R-function parameters follow") == ExternalRFormat.FORMAT_3
+ assert ExternalRFunction.is_header_line("R-EXTernal parameters follow") == ExternalRFormat.FORMAT_3A
+ assert ExternalRFunction.is_header_line("Invalid header") is None
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_normalization.py b/tests/unit/pleiades/sammy/parameters/test_normalization.py
new file mode 100644
index 0000000..1c9a8ff
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_normalization.py
@@ -0,0 +1,146 @@
+#!/usr/bin/env python
+"""Unit tests for card 06::normalization and background parameters."""
+
+import pytest
+
+from pleiades.sammy.parameters.helper import VaryFlag
+from pleiades.sammy.parameters.normalization import NormalizationBackgroundCard, NormalizationParameters
+
+# Test data with proper 10-char width formatting
+MAIN_ONLY_LINE = "1.000E+00 2.000E-02 3.000E-03 4.000E-04 5.000E-05 6.000E-06 1 0 1 0 1 0"
+
+WITH_UNC_LINES = [
+ "1.000E+00 2.000E-02 3.000E-03 4.000E-04 5.000E-05 6.000E-06 1 0 1 0 1 0",
+ "1.000E-02 2.000E-03 3.000E-04 4.000E-05 5.000E-06 6.000E-07",
+]
+
+COMPLETE_CARD = [
+ "NORMAlization and background are next",
+ "1.000E+00 2.000E-02 3.000E-03 4.000E-04 5.000E-05 6.000E-06 1 0 1 0 1 0",
+ "1.000E-02 2.000E-03 3.000E-04 4.000E-05 5.000E-06 6.000E-07",
+ "2.000E+00 3.000E-02 4.000E-03 5.000E-04 6.000E-05 7.000E-06 0 1 0 1 0 1",
+ "",
+]
+
+
+def test_main_parameters_parsing():
+ """Test parsing of main parameters only."""
+ params = NormalizationParameters.from_lines([MAIN_ONLY_LINE])
+
+ # Check values
+ assert params.anorm == pytest.approx(1.0)
+ assert params.backa == pytest.approx(0.02)
+ assert params.backb == pytest.approx(0.003)
+ assert params.backc == pytest.approx(0.0004)
+ assert params.backd == pytest.approx(0.00005)
+ assert params.backf == pytest.approx(0.000006)
+
+ # Check flags
+ assert params.flag_anorm == VaryFlag.YES
+ assert params.flag_backa == VaryFlag.NO
+ assert params.flag_backb == VaryFlag.YES
+ assert params.flag_backc == VaryFlag.NO
+ assert params.flag_backd == VaryFlag.YES
+ assert params.flag_backf == VaryFlag.NO
+
+ # Check optional uncertainties are None
+ assert params.d_anorm is None
+ assert params.d_backa is None
+ assert params.d_backb is None
+
+
+def test_parameters_with_uncertainties():
+ """Test parsing of parameters with uncertainties."""
+ params = NormalizationParameters.from_lines(WITH_UNC_LINES)
+
+ # Check main values
+ assert params.anorm == pytest.approx(1.0)
+ assert params.backa == pytest.approx(0.02)
+
+ # Check uncertainties
+ assert params.d_anorm == pytest.approx(0.01)
+ assert params.d_backa == pytest.approx(0.002)
+ assert params.d_backb == pytest.approx(0.0003)
+ assert params.d_backc == pytest.approx(0.00004)
+ assert params.d_backd == pytest.approx(0.000005)
+ assert params.d_backf == pytest.approx(0.0000006)
+
+
+def test_format_compliance():
+ """Test that output lines comply with fixed-width format."""
+ params = NormalizationParameters.from_lines(WITH_UNC_LINES)
+ output_lines = params.to_lines()
+
+ # Check first line field widths
+ first_line = output_lines[0]
+ assert len(first_line[:10].rstrip()) == 9 # 9 chars + 1 space
+ assert len(first_line[10:20].rstrip()) == 9
+ assert len(first_line[20:30].rstrip()) == 9
+ assert len(first_line[30:40].rstrip()) == 9
+ assert len(first_line[40:50].rstrip()) == 9
+ assert len(first_line[50:60].rstrip()) == 9
+
+
+def test_complete_card():
+ """Test parsing and formatting of complete card including header."""
+ card = NormalizationBackgroundCard.from_lines(COMPLETE_CARD)
+ output_lines = card.to_lines()
+
+ # Check header
+ assert output_lines[0].startswith("NORMA")
+
+ # Check number of lines
+ assert len(output_lines) == 5 # Header + 3 data lines + blank
+
+ # Check number of angle sets
+ assert len(card.angle_sets) == 2
+
+ # Check last line is blank
+ assert output_lines[-1].strip() == ""
+
+
+def test_multiple_angle_sets():
+ """Test parsing of multiple angle sets."""
+ card = NormalizationBackgroundCard.from_lines(COMPLETE_CARD)
+
+ # Check first angle set
+ assert card.angle_sets[0].anorm == pytest.approx(1.0)
+ assert card.angle_sets[0].d_anorm == pytest.approx(0.01)
+
+ # Check second angle set
+ assert card.angle_sets[1].anorm == pytest.approx(2.0)
+ assert card.angle_sets[1].flag_backa == VaryFlag.YES
+
+
+def test_invalid_header():
+ """Test error handling for invalid header."""
+ bad_lines = ["WRONG header", MAIN_ONLY_LINE]
+ with pytest.raises(ValueError, match="Invalid header"):
+ NormalizationBackgroundCard.from_lines(bad_lines)
+
+
+def test_empty_input():
+ """Test error handling for empty input."""
+ with pytest.raises(ValueError, match="No valid parameter line provided"):
+ NormalizationParameters.from_lines([])
+
+
+def test_roundtrip():
+ """Test that parsing and then formatting produces identical output."""
+ card = NormalizationBackgroundCard.from_lines(COMPLETE_CARD)
+ output_lines = card.to_lines()
+
+ # Parse the output again
+ reparsed_card = NormalizationBackgroundCard.from_lines(output_lines)
+
+ # Compare attributes of first angle set
+ first_set = card.angle_sets[0]
+ reparsed_first_set = reparsed_card.angle_sets[0]
+ assert first_set.anorm == reparsed_first_set.anorm
+ assert first_set.backa == reparsed_first_set.backa
+ assert first_set.flag_anorm == reparsed_first_set.flag_anorm
+ assert first_set.d_anorm == reparsed_first_set.d_anorm
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_radius.py b/tests/unit/pleiades/sammy/parameters/test_radius.py
new file mode 100644
index 0000000..f25ab85
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_radius.py
@@ -0,0 +1,407 @@
+#!/usr/bin/env python
+"""Unit tests for card 07::radius."""
+
+import pytest
+
+from pleiades.sammy.parameters.radius import RadiusCard, RadiusFormat, VaryFlag
+
+
+def create_fixed_width_line(pareff: float, partru: float, ichan: int, ifleff: int, ifltru: int, spin_groups: list[int]) -> str:
+ """Create properly formatted fixed-width line."""
+ # Format floating point numbers with proper width
+ pareff_str = f"{pareff:10.3f}"
+ partru_str = f"{partru:10.3f}"
+
+ # Format integers
+ ichan_str = f"{ichan:1d}"
+ ifleff_str = f"{ifleff:1d}"
+ ifltru_str = f"{ifltru:2d}"
+
+ # Format spin groups (2 columns each)
+ spin_groups_str = "".join(f"{g:2d}" for g in spin_groups)
+
+ return f"{pareff_str}{partru_str}{ichan_str}{ifleff_str}{ifltru_str}{spin_groups_str}"
+
+
+def create_alternate_fixed_width_line(pareff: float, partru: float, ichan: int, ifleff: int, ifltru: int, spin_groups: list[int]) -> str:
+ """Create properly formatted fixed-width line for alternate format (>=99 spin groups).
+
+ Args:
+ pareff: Effective radius value
+ partru: True radius value
+ ichan: Channel mode (0 or 1)
+ ifleff: Flag for effective radius
+ ifltru: Flag for true radius
+ spin_groups: List of spin group numbers
+
+ Returns:
+ str: Formatted line following alternate fixed-width format
+ """
+ # Format floating point numbers (same as default format)
+ pareff_str = f"{pareff:10.3f}" # Cols 1-10
+ partru_str = f"{partru:10.3f}" # Cols 11-20
+
+ # Format integers with 5-column width
+ ichan_str = f"{ichan:5d}" # Cols 21-25
+ ifleff_str = f"{ifleff:5d}" # Cols 26-30
+ ifltru_str = f"{ifltru:5d}" # Cols 31-35
+
+ # Format spin groups (5 columns each, starting at col 36)
+ spin_groups_str = "".join(f"{g:5d}" for g in spin_groups)
+
+ return f"{pareff_str}{partru_str}{ichan_str}{ifleff_str}{ifltru_str}{spin_groups_str}"
+
+
+def test_basic_fixed_width_format():
+ """Test basic fixed-width format parsing with single line of spin groups."""
+
+ # Create input with proper fixed-width formatting
+ input_str = "RADIUs parameters follow\n" + create_fixed_width_line(3.200, 3.200, 0, 1, -1, [1, 2, 3]) + "\n"
+ print("\nTest input:")
+ print(input_str)
+ print("\nColumn positions for content line:")
+ content = input_str.splitlines()[1]
+ print("Cols 1-10 (PAREFF):", f"'{content[0:10]}'")
+ print("Cols 11-20 (PARTRU):", f"'{content[10:20]}'")
+ print("Col 21 (ICHAN):", f"'{content[20:21]}'")
+ print("Col 22 (IFLEFF):", f"'{content[21:22]}'")
+ print("Cols 23-24 (IFLTRU):", f"'{content[22:24]}'")
+ print("Cols 25-26 (Group1):", f"'{content[24:26]}'")
+ print("Cols 27-28 (Group2):", f"'{content[26:28]}'")
+ print("Cols 29-30 (Group3):", f"'{content[28:30]}'")
+
+ # Parse the input
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ # Verify parsed values
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.200)
+ assert card.parameters.channel_mode == 0
+ assert card.parameters.vary_effective == VaryFlag.YES # 1
+ assert card.parameters.vary_true == VaryFlag.USE_FROM_PARFILE # -1
+ assert card.parameters.spin_groups == [1, 2, 3]
+ assert card.parameters.channels is None # No channels specified when mode=0
+
+ # Test writing back to fixed-width format
+ output_lines = card.to_lines(radius_format=RadiusFormat.DEFAULT)
+ assert len(output_lines) == 3 # Header, content, blank line
+ assert output_lines[0].strip() == "RADIUs parameters follow"
+
+ # Verify the formatted output matches input format
+ content_line = output_lines[1]
+ print(card)
+ print(content_line)
+ assert content_line[0:10].strip() == "3.2000E+00" # PAREFF
+ assert content_line[10:20].strip() == "3.2000E+00" # PARTRU
+ assert content_line[20:21] == "0" # ICHAN
+ assert content_line[21:22] == "1" # IFLEFF
+ assert content_line[22:24] == "-1" # IFLTRU
+ assert content_line[24:26] == " 1" # First spin group
+ assert content_line[26:28] == " 2" # Second spin group
+ assert content_line[28:30] == " 3" # Third spin group
+
+
+def test_alternate_fixed_width_format():
+ """Test alternate fixed-width format parsing (for >=99 spin groups)."""
+
+ # Create test input with large spin group numbers
+ spin_groups = [101, 102, 103] # Using 3-digit group numbers
+
+ input_str = "RADIUs parameters follow\n" + create_alternate_fixed_width_line(3.200, 3.200, 0, 1, -1, spin_groups) + "\n"
+
+ print("\nTest input:")
+ print(input_str)
+ print("\nColumn positions for content line:")
+ content = input_str.splitlines()[1]
+ print("Cols 1-10 (PAREFF):", f"'{content[0:10]}'")
+ print("Cols 11-20 (PARTRU):", f"'{content[10:20]}'")
+ print("Cols 21-25 (ICHAN):", f"'{content[20:25]}'")
+ print("Cols 26-30 (IFLEFF):", f"'{content[25:30]}'")
+ print("Cols 31-35 (IFLTRU):", f"'{content[30:35]}'")
+ print("Cols 36-40 (Group1):", f"'{content[35:40]}'")
+ print("Cols 41-45 (Group2):", f"'{content[40:45]}'")
+ print("Cols 46-50 (Group3):", f"'{content[45:50]}'")
+
+ # Parse the input
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ # Verify parsed values
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.200)
+ assert card.parameters.channel_mode == 0
+ assert card.parameters.vary_effective == VaryFlag.YES # 1
+ assert card.parameters.vary_true == VaryFlag.USE_FROM_PARFILE # -1
+ assert card.parameters.spin_groups == [101, 102, 103]
+ assert card.parameters.channels is None # No channels specified when mode=0
+
+ # Test writing back to alternate format
+ output_lines = card.to_lines(radius_format=RadiusFormat.ALTERNATE)
+ assert len(output_lines) == 3 # Header, content, blank line
+ assert output_lines[0].strip() == "RADIUs parameters follow"
+
+ # Verify the formatted output matches input format
+ content_line = output_lines[1]
+ print("\nGenerated output:")
+ print(content_line)
+ assert content_line[0:10].strip() == "3.2000E+00" # PAREFF
+ assert content_line[10:20].strip() == "3.2000E+00" # PARTRU
+ assert content_line[20:25] == " 0" # ICHAN (5 cols)
+ assert content_line[25:30] == " 1" # IFLEFF (5 cols)
+ assert content_line[30:35] == " -1" # IFLTRU (5 cols)
+ assert content_line[35:40] == " 101" # First spin group (5 cols)
+ assert content_line[40:45] == " 102" # Second spin group (5 cols)
+ assert content_line[45:50] == " 103" # Third spin group (5 cols)
+
+
+def test_basic_radius_keyword_format():
+ """Test basic keyword format parsing with single radius value."""
+
+ input_str = """RADII are in KEY-WORD format
+Radius= 3.200
+Group= 1
+"""
+ print("\nTest input:")
+ print(input_str)
+
+ # Parse the input
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ # Verify parsed values
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.200) # Should equal effective_radius
+ assert card.parameters.spin_groups == [1]
+ assert card.parameters.channels is None
+
+ # Test writing back to keyword format
+ output_lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\nGenerated output:")
+ print("\n".join(output_lines))
+
+ # Verify format and content
+ assert output_lines[0].strip() == "RADII are in KEY-WORD format"
+ assert any(line.startswith("Radius= 3.2") for line in output_lines)
+ assert any(line.startswith("Group= 1") for line in output_lines)
+
+
+def test_separate_radii_keyword_format():
+ """Test keyword format parsing with different effective/true radius values."""
+
+ input_str = """RADII are in KEY-WORD format
+Radius= 3.200 3.400
+Flags= 1 3
+Group= 1 2 3
+"""
+ print("\nTest input:")
+ print(input_str)
+
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.400)
+ assert card.parameters.vary_effective == VaryFlag.YES # 1
+ assert card.parameters.vary_true == VaryFlag.PUP # 3
+ assert card.parameters.spin_groups == [1, 2, 3]
+
+ output_lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\nGenerated output:")
+ print("\n".join(output_lines))
+
+
+def test_uncertainties_keyword_format():
+ """Test keyword format parsing with uncertainty specifications."""
+
+ input_str = """RADII are in KEY-WORD format
+Radius= 3.200 3.200
+Flags= 1 3
+Relative= 0.05 0.1
+Absolute= 0.002 0.003
+Group= 1
+"""
+ print("\nTest input:")
+ print(input_str)
+
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ assert card.relative_uncertainty == pytest.approx(0.05)
+ assert card.absolute_uncertainty == pytest.approx(0.002)
+
+ output_lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\nGenerated output:")
+ print("\n".join(output_lines))
+
+ assert any(line.startswith("Relative= 0.05") for line in output_lines)
+ assert any(line.startswith("Absolute= 0.002") for line in output_lines)
+
+
+def test_particle_pair_keyword_format():
+ """Test keyword format parsing with particle pair and orbital momentum."""
+
+ input_str = """RADII are in KEY-WORD format
+Radius= 3.200 3.200
+PP=n+16O L=all
+Flags= 1 3
+"""
+ print("\nTest input:")
+ print(input_str)
+
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ assert card.particle_pair == "n+16O"
+ assert card.orbital_momentum == ["all"]
+
+ output_lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\nGenerated output:")
+ print("\n".join(output_lines))
+
+ assert any(line.startswith("PP= n+16O") for line in output_lines)
+ assert any("L= all" in line for line in output_lines)
+
+
+def test_groups_channels_keyword_format():
+ """Test keyword format parsing with group and channel specifications."""
+
+ input_str = """RADII are in KEY-WORD format
+Radius= 3.200 3.200
+Flags= 1 3
+Group= 1 Channels= 1 2 3
+"""
+ print("\nTest input:")
+ print(input_str)
+
+ card = RadiusCard.from_lines(input_str.splitlines())
+
+ print(card)
+
+ assert card.parameters.spin_groups == [1]
+ assert card.parameters.channels == [1, 2, 3]
+ assert card.parameters.channel_mode == 1 # Specific channels mode
+
+ output_lines = card.to_lines(radius_format=RadiusFormat.KEYWORD)
+ print("\nGenerated output:")
+ print("\n".join(output_lines))
+
+
+def test_invalid_keyword_format():
+ """Test error handling for invalid keyword format."""
+
+ # Missing radius value
+ invalid_input = """RADII are in KEY-WORD format
+Flags= 1 3
+Group= 1
+"""
+ with pytest.raises(ValueError, match="2 validation errors for RadiusParameters"):
+ RadiusCard.from_lines(invalid_input.splitlines())
+
+ # Missing group specification
+ invalid_input = """RADII are in KEY-WORD format
+Radius= 3.200 3.200
+Flags= 1 3
+"""
+ with pytest.raises(ValueError, match="Must specify either spin groups or"):
+ RadiusCard.from_lines(invalid_input.splitlines())
+
+
+def test_minimal_radius_creation():
+ """Test creating RadiusCard with minimal required parameters."""
+
+ print("\nTest minimal parameter creation:")
+ # Create with just effective radius and spin groups
+ card = RadiusCard.from_values(effective_radius=3.200, spin_groups=[1, 2, 3])
+
+ print(f"Card parameters: {card.parameters}")
+
+ # Verify defaults
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.200) # Should equal effective_radius
+ assert card.parameters.spin_groups == [1, 2, 3]
+ assert card.parameters.channel_mode == 0 # Default
+ assert card.parameters.vary_effective == VaryFlag.NO # Default
+ assert card.parameters.vary_true == VaryFlag.NO # Default
+ assert card.parameters.channels is None # Default
+
+
+def test_full_radius_creation():
+ """Test creating RadiusCard with full parameter set."""
+
+ print("\nTest full parameter creation:")
+ card = RadiusCard.from_values(
+ effective_radius=3.200,
+ true_radius=3.400,
+ spin_groups=[1, 2],
+ channels=[1, 2, 3],
+ vary_effective=VaryFlag.YES,
+ vary_true=VaryFlag.PUP,
+ )
+
+ print(f"Card parameters: {card.parameters}")
+
+ # Verify all parameters
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.400)
+ assert card.parameters.spin_groups == [1, 2]
+ assert card.parameters.channel_mode == 1 # Auto-set when channels provided
+ assert card.parameters.channels == [1, 2, 3]
+ assert card.parameters.vary_effective == VaryFlag.YES
+ assert card.parameters.vary_true == VaryFlag.PUP
+
+
+def test_radius_with_extras():
+ """Test creating RadiusCard with keyword format extras."""
+
+ print("\nTest creation with extras:")
+ card = RadiusCard.from_values(
+ effective_radius=3.200,
+ spin_groups=[1],
+ particle_pair="n+16O",
+ orbital_momentum=["all"],
+ relative_uncertainty=0.05,
+ absolute_uncertainty=0.002,
+ )
+
+ print(f"Card parameters: {card.parameters}")
+ print(
+ f"Card extras: particle_pair={card.particle_pair}, "
+ f"orbital_momentum={card.orbital_momentum}, "
+ f"uncertainties={card.relative_uncertainty}, {card.absolute_uncertainty}"
+ )
+
+ # Verify core parameters
+ assert card.parameters.effective_radius == pytest.approx(3.200)
+ assert card.parameters.true_radius == pytest.approx(3.200)
+ assert card.parameters.spin_groups == [1]
+
+ # Verify extras
+ assert card.particle_pair == "n+16O"
+ assert card.orbital_momentum == ["all"]
+ assert card.relative_uncertainty == pytest.approx(0.05)
+ assert card.absolute_uncertainty == pytest.approx(0.002)
+
+
+def test_invalid_radius_creation():
+ """Test error cases for direct parameter creation."""
+
+ print("\nTesting invalid parameter combinations:")
+
+ # Missing required parameters
+ with pytest.raises(TypeError) as exc_info:
+ RadiusCard.from_values()
+ print(f"Missing params error: {exc_info.value}")
+
+ # Invalid radius value
+ with pytest.raises(ValueError) as exc_info:
+ RadiusCard.from_values(effective_radius=-1.0, spin_groups=[1])
+ print(f"Invalid radius error: {exc_info.value}")
+
+ # Inconsistent vary flags with radii
+ with pytest.raises(ValueError) as exc_info:
+ RadiusCard.from_values(
+ effective_radius=3.200,
+ true_radius=3.400,
+ spin_groups=[1],
+ vary_true=VaryFlag.USE_FROM_PARFILE, # Can't use -1 when radii differ
+ )
+ print(f"Inconsistent flags error: {exc_info.value}")
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_resonance.py b/tests/unit/pleiades/sammy/parameters/test_resonance.py
new file mode 100644
index 0000000..775ac08
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_resonance.py
@@ -0,0 +1,96 @@
+from unittest.mock import patch
+
+import pytest
+
+from pleiades.sammy.parameters.resonance import ResonanceEntry, UnsupportedFormatError, VaryFlag
+
+
+def test_valid_resonance_entry():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1"
+ entry = ResonanceEntry.from_str(line)
+
+ assert entry.resonance_energy == pytest.approx(-3.6616e6)
+ assert entry.capture_width == pytest.approx(1.5877e5)
+ assert entry.channel1_width == pytest.approx(3.6985e9)
+ assert entry.channel2_width is None
+ assert entry.channel3_width is None
+ assert entry.vary_energy == VaryFlag.NO
+ assert entry.vary_capture_width == VaryFlag.NO
+ assert entry.vary_channel1 == VaryFlag.YES
+ assert entry.igroup == 1
+
+
+def test_resonance_entry_to_str():
+ entry = ResonanceEntry(
+ resonance_energy=-3.6616e6,
+ capture_width=1.5877e5,
+ channel1_width=3.6985e9,
+ vary_energy=VaryFlag.NO,
+ vary_capture_width=VaryFlag.NO,
+ vary_channel1=VaryFlag.YES,
+ igroup=1,
+ )
+ formatted_line = entry.to_str()
+ assert formatted_line.startswith("-3.6616E+06 1.5877E+05 3.6985E+09")
+ assert "0 0 1" in formatted_line
+
+
+def test_unsupported_format_error():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1 -1.234"
+ with pytest.raises(UnsupportedFormatError, match="SORRY! While SAMMY allows multi-line resonance entries"):
+ ResonanceEntry.from_str(line)
+
+
+def test_malformed_format_error():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 -1.234"
+ with pytest.raises(ValueError, match="Empty line provided|Field required"):
+ ResonanceEntry.from_str(line)
+
+
+def test_missing_fields():
+ line = " 1.5877E+05 3.6985E+09 0 0 1 1"
+ with pytest.raises(ValueError, match="Field required"):
+ ResonanceEntry.from_str(line)
+
+
+def test_partial_vary_flags():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 1 0 0 2"
+ entry = ResonanceEntry.from_str(line)
+ assert entry.vary_energy == VaryFlag.YES
+ assert entry.vary_capture_width == VaryFlag.NO
+ assert entry.vary_channel1 == VaryFlag.NO
+ assert entry.igroup == 2
+
+
+def test_full_channel_widths():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 1.1234E+05 5.4321E+04 0 0 1 1"
+ entry = ResonanceEntry.from_str(line)
+ assert entry.channel1_width == pytest.approx(3.6985e9)
+ assert entry.channel2_width == pytest.approx(1.1234e5)
+ assert entry.channel3_width == pytest.approx(5.4321e4)
+
+
+def test_logger_error_for_x_value():
+ line = "-3.6616E+06 1.5877E+05 3.6985E+09 0 0 1 1 abc"
+ with patch("pleiades.sammy.parameters.resonance.logger") as mock_logger:
+ ResonanceEntry.from_str(line)
+ mock_logger.error.assert_called_once_with("Failed to parse X value: could not convert string to float: 'abc'")
+
+
+def test_to_str_with_partial_channels():
+ entry = ResonanceEntry(
+ resonance_energy=-3.6616e6,
+ capture_width=1.5877e5,
+ channel1_width=3.6985e9,
+ channel2_width=None,
+ channel3_width=None,
+ vary_energy=VaryFlag.YES,
+ igroup=3,
+ )
+ formatted_line = entry.to_str()
+ assert "3.6985E+09" in formatted_line
+ assert " " * 11 in formatted_line # Blank for channel2 and channel3
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/parameters/test_unused_var.py b/tests/unit/pleiades/sammy/parameters/test_unused_var.py
new file mode 100644
index 0000000..de59704
--- /dev/null
+++ b/tests/unit/pleiades/sammy/parameters/test_unused_var.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python
+"""Unit tests for card 05::unused but correlated variables."""
+
+import pytest
+
+from pleiades.sammy.parameters.unused_var import UnusedCorrelatedCard, UnusedCorrelatedParameters, UnusedVariable
+
+
+def test_unused_variable_validation():
+ """Test UnusedVariable name formatting and validation."""
+ # Test exact 5-char name
+ var = UnusedVariable(name="NVAR1", value=1.234)
+ assert len(var.name) == 5
+ assert var.name == "NVAR1"
+
+ # Test name padding
+ var = UnusedVariable(name="NV1", value=1.234)
+ assert len(var.name) == 5
+ assert var.name == "NV1 "
+
+
+def test_parameters_parsing():
+ """Test parsing of parameter lines with proper fixed-width format."""
+ test_lines = [
+ (" " * 5).join([f"NVAR{i}" for i in range(1, 4)]),
+ "1.2304E+002.9800E+021.5000E-01",
+ (" " * 5).join([f"NVAR{i}" for i in range(4, 6)]),
+ "2.5000E-021.0000E+00",
+ ]
+
+ params = UnusedCorrelatedParameters.from_lines(test_lines)
+
+ # Verify number of variables parsed
+ assert len(params.variables) == 5
+
+ # Verify specific values
+ assert params.variables[0].name == "NVAR1"
+ assert params.variables[0].value == pytest.approx(1.2304)
+ assert params.variables[1].name == "NVAR2"
+ assert params.variables[1].value == pytest.approx(298.0)
+
+
+def test_parameters_formatting():
+ """Test formatting output with proper fixed-width spacing."""
+ variables = [
+ UnusedVariable(name="NVAR1", value=1.2304),
+ UnusedVariable(name="NVAR2", value=298.0),
+ UnusedVariable(name="NVAR3", value=0.15),
+ ]
+
+ params = UnusedCorrelatedParameters(variables=variables)
+ lines = params.to_lines()
+
+ # Should produce exactly 2 lines (names and values)
+ assert len(lines) == 2
+
+ # Verify name line format (5 chars + 5 spaces between)
+ expected_name_line = "NVAR1 NVAR2 NVAR3"
+ assert lines[0] == expected_name_line
+
+ # Verify value line format (exactly 10 chars each, no spaces)
+ expected_value_line = "1.2304E+002.9800E+021.5000E-01"
+ assert lines[1] == expected_value_line
+
+
+def test_full_card_parsing():
+ """Test parsing of a complete card including header."""
+ card_lines = [
+ "UNUSEd but correlated variables come next",
+ (" " * 5).join([f"NVAR{i}" for i in range(1, 4)]),
+ "1.2304E+002.9800E+021.5000E-01",
+ "",
+ ]
+
+ card = UnusedCorrelatedCard.from_lines(card_lines)
+
+ # Verify header recognition
+ assert UnusedCorrelatedCard.is_header_line(card_lines[0])
+
+ # Verify parameter parsing
+ assert len(card.parameters.variables) == 3
+
+
+def test_error_handling():
+ """Test error conditions and validation."""
+ # Test invalid header
+ with pytest.raises(ValueError, match="Invalid header line"):
+ UnusedCorrelatedCard.from_lines(["WRONG header", "NVAR1", "1.2340E+00"])
+
+ # Test missing value line
+ with pytest.raises(ValueError, match="At least one pair of name/value lines required"):
+ UnusedCorrelatedParameters.from_lines(["NVAR1"])
+
+ # Test empty input
+ with pytest.raises(ValueError, match="No lines provided"):
+ UnusedCorrelatedCard.from_lines([])
+
+
+def test_multiple_variable_groups():
+ """Test handling of multiple groups of variables (>8 variables)."""
+ # Create test data with 10 variables (should span multiple lines)
+ names = [f"NVAR{i}" for i in range(1, 11)]
+ values = [float(i) for i in range(1, 11)]
+ variables = [UnusedVariable(name=name, value=value) for name, value in zip(names, values)]
+
+ params = UnusedCorrelatedParameters(variables=variables)
+ lines = params.to_lines()
+
+ # Should produce 4 lines (2 pairs of name/value lines)
+ assert len(lines) == 4
+
+ # First group should have 8 variables
+ assert len(lines[0].split()) == 8
+ # Second group should have 2 variables
+ assert len(lines[2].split()) == 2
+
+
+def test_roundtrip_consistency():
+ """Test that parsing and then formatting produces consistent results."""
+ original_lines = [(" " * 5).join([f"NVAR{i}" for i in range(1, 4)]), "1.2304E+002.9800E+021.5000E-01"]
+
+ # Parse and then format
+ params = UnusedCorrelatedParameters.from_lines(original_lines)
+ output_lines = params.to_lines()
+
+ # Parse the output again
+ params2 = UnusedCorrelatedParameters.from_lines(output_lines)
+
+ # Compare variables
+ assert len(params.variables) == len(params2.variables)
+ for var1, var2 in zip(params.variables, params2.variables):
+ assert var1.name == var2.name
+ assert var1.value == pytest.approx(var2.value)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/test_config.py b/tests/unit/pleiades/sammy/test_config.py
new file mode 100644
index 0000000..516aa6f
--- /dev/null
+++ b/tests/unit/pleiades/sammy/test_config.py
@@ -0,0 +1,232 @@
+#!/usr/bin/env python
+"""Unit tests for SAMMY configuration classes."""
+
+from pathlib import Path
+
+import pytest
+
+from pleiades.sammy.config import ConfigurationError, DockerSammyConfig, LocalSammyConfig, NovaSammyConfig
+
+
+class TestLocalSammyConfig:
+ """Tests for LocalSammyConfig."""
+
+ def test_create_with_valid_paths(self, temp_working_dir):
+ """Should create config with valid paths."""
+ config = LocalSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ sammy_executable=Path("/usr/local/bin/sammy"),
+ shell_path=Path("/bin/bash"),
+ )
+ assert config.working_dir == temp_working_dir
+ assert config.shell_path == Path("/bin/bash")
+
+ def test_create_with_defaults(self, temp_working_dir):
+ """Should create config with default values."""
+ config = LocalSammyConfig(
+ working_dir=temp_working_dir, output_dir=temp_working_dir / "output", sammy_executable=Path("sammy")
+ )
+ assert config.shell_path == Path("/bin/bash")
+
+ def test_validate_sammy_in_path(self, temp_working_dir, monkeypatch):
+ """Should validate SAMMY executable in PATH."""
+
+ def mock_which(path):
+ return "/usr/local/bin/sammy" if path == "sammy" else None
+
+ monkeypatch.setattr("shutil.which", mock_which)
+
+ config = LocalSammyConfig(
+ working_dir=temp_working_dir, output_dir=temp_working_dir / "output", sammy_executable=Path("sammy")
+ )
+ assert config.validate()
+
+ def test_validate_sammy_not_in_path(self, temp_working_dir, monkeypatch):
+ """Should raise error if SAMMY not in PATH."""
+ monkeypatch.setattr("shutil.which", lambda _: None)
+
+ config = LocalSammyConfig(
+ working_dir=temp_working_dir, output_dir=temp_working_dir / "output", sammy_executable=Path("sammy")
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "not found" in str(exc.value)
+
+ def test_invalid_shell_path(self, temp_working_dir):
+ """Should raise error for invalid shell path."""
+ config = LocalSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ sammy_executable=Path("ls"), # use a unix command as sammy executable
+ shell_path=Path("/bin/invalid_shell"),
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "Shell not found" in str(exc.value)
+
+
+class TestDockerSammyConfig:
+ """Tests for DockerSammyConfig."""
+
+ def test_create_with_valid_config(self, temp_working_dir):
+ """Should create config with valid values."""
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="kedokudo/sammy-docker",
+ container_working_dir=Path("/sammy/work"),
+ container_data_dir=Path("/sammy/data"),
+ )
+ assert config.image_name == "kedokudo/sammy-docker"
+ assert config.container_working_dir == Path("/sammy/work")
+ assert config.container_data_dir == Path("/sammy/data")
+ # call validate
+ assert config.validate()
+
+ def test_validate_empty_image_name(self, temp_working_dir):
+ """Should raise error for empty image name."""
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="",
+ container_working_dir=Path("/sammy/work"),
+ container_data_dir=Path("/sammy/data"),
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "image name cannot be empty" in str(exc.value)
+
+ def test_validate_relative_container_paths(self, temp_working_dir):
+ """Should raise error for relative container paths."""
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="kedokudo/sammy-docker",
+ container_working_dir=Path("relative/path"),
+ container_data_dir=Path("/sammy/data"),
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "must be absolute" in str(exc.value)
+
+ def test_validate_relative_data_dir(self, temp_working_dir):
+ """Should raise error for relative data dir."""
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="kedokudo/sammy-docker",
+ container_working_dir=Path("/sammy/work"),
+ container_data_dir=Path("relative/path"),
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "must be absolute" in str(exc.value)
+
+ def test_validate_same_container_dirs(self, temp_working_dir):
+ """Should raise error if working and data dirs are same."""
+ same_path = Path("/sammy/work")
+ config = DockerSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ image_name="kedokudo/sammy-docker",
+ container_working_dir=same_path,
+ container_data_dir=same_path,
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "must be different" in str(exc.value)
+
+
+class TestNovaSammyConfig:
+ """Tests for NovaSammyConfig."""
+
+ def test_create_with_valid_config(self, temp_working_dir):
+ """Should create config with valid values."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="https://nova.ornl.gov",
+ api_key="valid_api_key",
+ tool_id="neutrons_imaging_sammy",
+ )
+ assert config.url == "https://nova.ornl.gov"
+ assert config.api_key == "valid_api_key"
+ assert config.tool_id == "neutrons_imaging_sammy"
+ assert config.timeout == 3600 # default value
+ # call validate
+ assert config.validate()
+
+ def test_validate_invalid_url(self, temp_working_dir):
+ """Should raise error for invalid URL format."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="not_a_url",
+ api_key="valid_api_key",
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "Invalid URL format" in str(exc.value)
+
+ def test_empty_url(self, temp_working_dir):
+ """Should raise error for empty URL."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir, output_dir=temp_working_dir / "output", url="", api_key="valid_api_key"
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "NOVA service URL cannot be empty" in str(exc.value)
+
+ def test_validate_missing_api_key(self, temp_working_dir):
+ """Should raise error for empty API key."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="https://nova.ornl.gov",
+ api_key="",
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "API key cannot be empty" in str(exc.value)
+
+ def test_validate_invalid_timeout(self, temp_working_dir):
+ """Should raise error for invalid timeout value."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="https://nova.ornl.gov",
+ api_key="valid_api_key",
+ timeout=-1,
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "Invalid timeout value" in str(exc.value)
+
+ def test_create_with_custom_timeout(self, temp_working_dir):
+ """Should accept custom timeout value."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="https://nova.ornl.gov",
+ api_key="valid_api_key",
+ timeout=7200,
+ )
+ assert config.timeout == 7200
+
+ def test_empty_tool_id(self, temp_working_dir):
+ """Should raise error for empty tool ID."""
+ config = NovaSammyConfig(
+ working_dir=temp_working_dir,
+ output_dir=temp_working_dir / "output",
+ url="https://nova.ornl.gov",
+ api_key="valid_api_key",
+ tool_id="",
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ config.validate()
+ assert "Tool ID cannot be empty" in str(exc.value)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/test_factory.py b/tests/unit/pleiades/sammy/test_factory.py
new file mode 100644
index 0000000..6ca5a0d
--- /dev/null
+++ b/tests/unit/pleiades/sammy/test_factory.py
@@ -0,0 +1,259 @@
+import logging
+import shutil
+import subprocess
+from unittest import mock
+
+import pytest
+
+from pleiades.sammy.backends.docker import DockerSammyRunner
+from pleiades.sammy.backends.local import LocalSammyRunner
+from pleiades.sammy.backends.nova_ornl import NovaSammyRunner
+from pleiades.sammy.factory import (
+ BackendNotAvailableError,
+ BackendType,
+ ConfigurationError,
+ SammyFactory,
+)
+from pleiades.sammy.interface import SammyRunner
+
+
+# Mock environment variables for NOVA backend checks
+@pytest.fixture
+def mock_nova_env_vars(monkeypatch):
+ """Mock shutil.which to simulate docker being available."""
+ monkeypatch.setenv("NOVA_URL", "https://mock_nova_url")
+ monkeypatch.setenv("NOVA_API_KEY", "mock_api_key")
+
+
+# Mock shutil.which for backend availability checks
+@pytest.fixture
+def mock_which(monkeypatch):
+ """Mock shutil.which to simulate command availability."""
+
+ def _mock_which(cmd):
+ if cmd == "sammy":
+ return "/usr/bin/sammy"
+ if cmd == "docker":
+ return "/usr/bin/docker"
+ return None
+
+ monkeypatch.setattr(shutil, "which", _mock_which)
+
+
+@pytest.fixture
+def mock_which_unavailable(monkeypatch):
+ """
+ Mock shutil.which to simulate no commands being available
+ except for docker.
+ """
+
+ def _mock_which(cmd):
+ if cmd == "docker":
+ return "/usr/bin/docker" # Return a valid path for docker
+ return None
+
+ monkeypatch.setattr(shutil, "which", _mock_which)
+
+
+# Mock subprocess.run for Docker backend checks
+@pytest.fixture
+def mock_subprocess_run(monkeypatch):
+ """Mock subprocess.run to simulate successful docker info."""
+
+ def _mock_run(*args, **kwargs):
+ _ = kwargs # Unused
+ # Check if the command is docker info
+ if args[0] == ["docker", "info"]:
+ return subprocess.CompletedProcess(args=args, returncode=0, stdout=b"Mock docker info")
+ return subprocess.CompletedProcess(args=args, returncode=1)
+
+ monkeypatch.setattr(subprocess, "run", _mock_run)
+
+
+@pytest.fixture
+def mock_subprocess_run_docker_fail(monkeypatch):
+ """Mock subprocess.run to simulate docker info failure."""
+ monkeypatch.setattr(
+ subprocess, "run", lambda *args, **kwargs: subprocess.CompletedProcess(args=args, returncode=1, **kwargs)
+ )
+
+
+# Mock SammyRunner creation for runner tests
+@pytest.fixture
+def mock_sammy_runner(monkeypatch):
+ """Mock SammyRunner to track instantiation."""
+ mock_runner_class = mock.MagicMock(spec=SammyRunner)
+ monkeypatch.setattr("pleiades.sammy.factory.SammyRunner", mock_runner_class)
+ return mock_runner_class
+
+
+class TestSammyFactory:
+ """Tests for SammyFactory."""
+
+ def test_list_available_backends_all_available(self, mock_which, mock_subprocess_run, mock_nova_env_vars):
+ """All backends should be available."""
+ _ = mock_which, mock_subprocess_run, mock_nova_env_vars # implicitly used by the fixture
+ available = SammyFactory.list_available_backends()
+ assert available == {
+ BackendType.LOCAL: True,
+ BackendType.DOCKER: True,
+ BackendType.NOVA: True,
+ }
+
+ def test_list_available_backends_none_available(
+ self, monkeypatch, mock_which_unavailable, mock_subprocess_run_docker_fail
+ ):
+ """No backends should be available."""
+ _ = mock_which_unavailable, mock_subprocess_run_docker_fail # implicitly used by the fixture
+ # remove NOVA env vars to simulate unavailability
+ monkeypatch.delenv("NOVA_URL", raising=False)
+ monkeypatch.delenv("NOVA_API", raising=False)
+ # check availability
+ available = SammyFactory.list_available_backends()
+ assert available == {
+ BackendType.LOCAL: False,
+ BackendType.DOCKER: False,
+ BackendType.NOVA: False,
+ }
+
+ def test_create_runner_local(self, mock_sammy_runner, tmp_path, mock_which):
+ """Should create LocalSammyRunner."""
+ _ = mock_sammy_runner, mock_which # implicitly used by the fixture
+ runner = SammyFactory.create_runner("local", tmp_path)
+ assert isinstance(runner, LocalSammyRunner) # Check if it's the mocked runner
+
+ def test_create_runner_docker(self, mock_sammy_runner, tmp_path):
+ """Should create DockerSammyRunner."""
+ _ = mock_sammy_runner # implicitly used by the fixture
+ runner = SammyFactory.create_runner("docker", tmp_path)
+ assert isinstance(runner, DockerSammyRunner)
+
+ def test_create_runner_nova(self, mock_sammy_runner, tmp_path):
+ """Should create NovaSammyRunner."""
+ _ = mock_sammy_runner # implicitly used by the fixture
+ runner = SammyFactory.create_runner("nova", tmp_path)
+ assert isinstance(runner, NovaSammyRunner)
+
+ def test_create_runner_invalid_backend(self, tmp_path):
+ """Should raise error for invalid backend."""
+ with pytest.raises(ConfigurationError) as exc:
+ SammyFactory.create_runner("invalid", tmp_path)
+ assert "Invalid backend type" in str(exc.value)
+
+ def test_create_runner_local_unavailable(self, mock_which_unavailable, tmp_path):
+ """Should raise error for unavailable local backend."""
+ _ = mock_which_unavailable # implicitly used by the fixture
+ with pytest.raises(BackendNotAvailableError) as exc:
+ SammyFactory.create_runner("local", tmp_path)
+ assert "Backend local is not available" in str(exc.value)
+
+ def test_create_runner_docker_unavailable(self, mock_which_unavailable, mock_subprocess_run_docker_fail, tmp_path):
+ """Should raise error for unavailable docker backend."""
+ _ = mock_which_unavailable, mock_subprocess_run_docker_fail # implicitly used by the fixture
+ with pytest.raises(BackendNotAvailableError) as exc:
+ SammyFactory.create_runner("docker", tmp_path)
+ assert "Backend docker is not available" in str(exc.value)
+
+ def test_from_config_valid(self, tmp_path, mock_sammy_runner, mock_which):
+ """Should create runner from valid config file."""
+ _ = mock_sammy_runner, mock_which # implicitly used by the fixture
+ config_file = tmp_path / "config.yaml"
+ config_file.write_text(
+ f"""
+ backend: local
+ working_dir: {tmp_path}
+ """
+ )
+ runner = SammyFactory.from_config(config_file)
+ assert isinstance(runner, LocalSammyRunner)
+
+ def test_from_config_invalid_yaml(self, tmp_path):
+ """Should raise error for invalid YAML."""
+ config_file = tmp_path / "config.yaml"
+ config_file.write_text("invalid: yaml:")
+ with pytest.raises(ConfigurationError) as exc:
+ SammyFactory.from_config(config_file)
+ assert "Invalid YAML format" in str(exc.value)
+
+ def test_from_config_missing_fields(self, tmp_path):
+ """Should raise error for missing fields."""
+ config_file = tmp_path / "config.yaml"
+ config_file.write_text("backend: local")
+ with pytest.raises(ConfigurationError) as exc:
+ SammyFactory.from_config(config_file)
+ assert "Missing required fields" in str(exc.value)
+
+ def test_from_config_env_vars(self, tmp_path, mock_sammy_runner, monkeypatch, mock_which):
+ """Should expand environment variables."""
+ _ = mock_sammy_runner, mock_which # implicitly used by the fixture
+ monkeypatch.setenv("MY_VAR", f"{tmp_path}")
+ config_file = tmp_path / "config.yaml"
+ config_file.write_text(
+ """
+ backend: local
+ working_dir: ${MY_VAR}
+ """
+ )
+ runner = SammyFactory.from_config(config_file)
+ assert isinstance(runner, LocalSammyRunner)
+
+ def test_from_config_missing_env_var(self, tmp_path):
+ """Should raise error for missing environment variable."""
+ config_file = tmp_path / "config.yaml"
+ config_file.write_text(
+ """
+ backend: local
+ working_dir: ${MISSING_VAR}
+ """
+ )
+ with pytest.raises(ConfigurationError) as exc:
+ SammyFactory.from_config(config_file)
+ assert "Environment variable not found" in str(exc.value)
+
+ def test_auto_select_local(self, mock_which, mock_subprocess_run, mock_sammy_runner, tmp_path, caplog):
+ """Should auto-select local backend."""
+ _ = mock_which, mock_subprocess_run, mock_sammy_runner # implicitly used by the fixture
+ caplog.set_level(logging.INFO)
+ runner = SammyFactory.auto_select(tmp_path)
+ assert isinstance(runner, LocalSammyRunner)
+ assert "Attempting to use local backend" in caplog.text
+
+ def test_auto_select_docker(
+ self, monkeypatch, mock_which_unavailable, mock_subprocess_run, mock_sammy_runner, tmp_path, caplog
+ ):
+ """Should auto-select docker backend if local unavailable."""
+ _ = mock_which_unavailable, mock_subprocess_run, mock_sammy_runner # implicitly used by the fixture
+ # remove NOVA env vars to simulate unavailability
+ monkeypatch.delenv("NOVA_URL", raising=False)
+ monkeypatch.delenv("NOVA_API", raising=False)
+ # check availability
+ caplog.set_level(logging.INFO)
+ runner = SammyFactory.auto_select(tmp_path)
+ assert isinstance(runner, DockerSammyRunner)
+ assert "Attempting to use docker backend" in caplog.text
+
+ def test_auto_select_preferred(self, mock_which, mock_subprocess_run, mock_sammy_runner, tmp_path, caplog):
+ """Should respect preferred backend."""
+ _ = mock_which, mock_subprocess_run, mock_sammy_runner # implicitly used by the fixture
+ caplog.set_level(logging.INFO)
+ runner = SammyFactory.auto_select(tmp_path, preferred_backend="docker")
+ assert isinstance(runner, DockerSammyRunner)
+ assert "Using preferred backend: docker" in caplog.text
+
+ def test_auto_select_none_available(
+ self, monkeypatch, mock_which_unavailable, mock_subprocess_run_docker_fail, tmp_path, caplog
+ ):
+ """Should raise error if no backends available."""
+ _ = mock_which_unavailable, mock_subprocess_run_docker_fail # implicitly used by the fixture
+ # remove NOVA env vars to simulate unavailability
+ monkeypatch.delenv("NOVA_URL", raising=False)
+ monkeypatch.delenv("NOVA_API", raising=False)
+ # check availability
+ caplog.set_level(logging.INFO)
+ with pytest.raises(BackendNotAvailableError) as exc:
+ SammyFactory.auto_select(tmp_path)
+ assert "No suitable backend available." in str(exc.value)
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])
diff --git a/tests/unit/pleiades/sammy/test_interface.py b/tests/unit/pleiades/sammy/test_interface.py
new file mode 100644
index 0000000..a3f0842
--- /dev/null
+++ b/tests/unit/pleiades/sammy/test_interface.py
@@ -0,0 +1,206 @@
+#!/usr/bin/env python
+"""Unit tests for SAMMY interface module."""
+
+from datetime import datetime
+
+import pytest
+
+from pleiades.sammy.interface import (
+ BaseSammyConfig,
+ EnvironmentPreparationError,
+ SammyExecutionResult,
+ SammyFiles,
+ SammyRunner,
+)
+
+
+class TestSammyFiles:
+ """Tests for SammyFiles data structure."""
+
+ def test_create_valid(self, mock_sammy_files):
+ """Should create with valid paths."""
+ files = SammyFiles(**mock_sammy_files)
+ assert files.input_file == mock_sammy_files["input_file"]
+ assert files.parameter_file == mock_sammy_files["parameter_file"]
+ assert files.data_file == mock_sammy_files["data_file"]
+
+ def test_validate_missing_file(self, mock_sammy_files, tmp_path):
+ """Should raise FileNotFoundError for missing files."""
+ # Create with non-existent file
+ files = SammyFiles(
+ input_file=tmp_path / "nonexistent.inp",
+ parameter_file=mock_sammy_files["parameter_file"],
+ data_file=mock_sammy_files["data_file"],
+ )
+
+ with pytest.raises(FileNotFoundError) as exc:
+ files.validate()
+ assert "not found" in str(exc.value)
+
+ def test_validate_directory(self, mock_sammy_files):
+ """Should validate input files are actual files not directories."""
+ # Create a directory with same name as input file
+ dir_path = mock_sammy_files["input_file"].parent / "test.inp"
+ dir_path.mkdir(exist_ok=True)
+
+ files = SammyFiles(
+ input_file=dir_path,
+ parameter_file=mock_sammy_files["parameter_file"],
+ data_file=mock_sammy_files["data_file"],
+ )
+
+ with pytest.raises(FileNotFoundError) as exc:
+ files.validate()
+ assert "is not a file" in str(exc.value)
+
+
+class TestSammyExecutionResult:
+ """Tests for SammyExecutionResult data structure."""
+
+ def test_create_success(self):
+ """Should create successful result."""
+ start_time = datetime.now()
+ result = SammyExecutionResult(
+ success=True,
+ execution_id="test_123",
+ start_time=start_time,
+ end_time=start_time,
+ console_output="Normal finish to SAMMY",
+ )
+ assert result.success
+ assert result.error_message is None
+
+ def test_create_failure(self):
+ """Should create failure result."""
+ start_time = datetime.now()
+ result = SammyExecutionResult(
+ success=False,
+ execution_id="test_456",
+ start_time=start_time,
+ end_time=start_time,
+ console_output="Error occurred",
+ error_message="Test error",
+ )
+ assert not result.success
+ assert result.error_message == "Test error"
+
+ def test_runtime_calculation(self):
+ """Should calculate runtime correctly."""
+ from datetime import timedelta
+
+ start_time = datetime.now()
+ end_time = start_time + timedelta(seconds=10)
+ result = SammyExecutionResult(
+ success=True,
+ execution_id="test_789",
+ start_time=start_time,
+ end_time=end_time,
+ console_output="Test output",
+ )
+ assert result.runtime_seconds == pytest.approx(10.0)
+
+
+class MockSammyConfig(BaseSammyConfig):
+ """Mock configuration for testing."""
+
+ def validate(self) -> bool:
+ return super().validate()
+
+
+class TestBaseSammyConfig:
+ """Tests for BaseSammyConfig."""
+
+ def test_validate_working_dir(self, temp_working_dir):
+ """Should validate working directory exists."""
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=temp_working_dir / "output")
+ assert config.validate()
+
+ def test_creates_output_dir(self, temp_working_dir):
+ """Should create output directory if it doesn't exist."""
+ output_dir = temp_working_dir / "new_output"
+ assert not output_dir.exists()
+
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=output_dir)
+ config.validate()
+
+ assert output_dir.exists()
+
+ def test_shared_working_output_dir(self, temp_working_dir):
+ """Should allow working_dir and output_dir to be the same."""
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=temp_working_dir)
+ assert config.validate()
+
+ def test_nested_output_dir(self, temp_working_dir):
+ """Should handle nested output directory."""
+ nested_output = temp_working_dir / "level1" / "level2" / "output"
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=nested_output)
+ config.validate()
+ assert nested_output.exists()
+
+
+class MockSammyRunner(SammyRunner):
+ """Mock runner for testing abstract base class."""
+
+ def prepare_environment(self, files: SammyFiles) -> None:
+ self.prepared = True
+ _ = files # deal with unused variable warning
+
+ def execute_sammy(self, files: SammyFiles) -> SammyExecutionResult:
+ _ = files # deal with unused variable warning
+ if not hasattr(self, "prepared"):
+ raise EnvironmentPreparationError("Environment not prepared")
+ return SammyExecutionResult(
+ success=True,
+ execution_id="test",
+ start_time=datetime.now(),
+ end_time=datetime.now(),
+ console_output="Test output",
+ )
+
+ def cleanup(self) -> None:
+ self.cleaned = True
+
+ def validate_config(self) -> bool:
+ return self.config.validate()
+
+
+class TestSammyRunner:
+ """Tests for SammyRunner abstract base class."""
+
+ def test_execution_flow(self, mock_sammy_files, temp_working_dir):
+ """Should follow correct execution flow."""
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=temp_working_dir / "output")
+ runner = MockSammyRunner(config)
+ files = SammyFiles(**mock_sammy_files)
+
+ # Test preparation
+ runner.prepare_environment(files)
+ assert runner.prepared
+
+ # Test execution
+ result = runner.execute_sammy(files)
+ assert result.success
+ assert isinstance(result, SammyExecutionResult)
+
+ # Test cleanup
+ runner.cleanup()
+ assert runner.cleaned
+
+ def test_execution_without_preparation(self, mock_sammy_files, temp_working_dir):
+ """Should raise error if executing without preparation."""
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=temp_working_dir / "output")
+ runner = MockSammyRunner(config)
+ files = SammyFiles(**mock_sammy_files)
+
+ with pytest.raises(EnvironmentPreparationError):
+ runner.execute_sammy(files)
+
+ def test_validate_config(self, temp_working_dir):
+ """Should validate configuration."""
+ config = MockSammyConfig(working_dir=temp_working_dir, output_dir=temp_working_dir / "output")
+ runner = MockSammyRunner(config)
+ assert runner.validate_config()
+
+
+if __name__ == "__main__":
+ pytest.main(["-v", __file__])